Ext.data.Model.idProperty
Здравствуйте.
У меня есть модель, в которой определен idProperty:
Ext.define("PM.model.entity.Role", {
extend: "Ext.data.Model",
idProperty: "ID",
fields: [
{ name: "ID",
type: "int"
},
{ name: "PMLevel_ID",
type: "int"
},
"Name"
],
proxy: {
type: "ajax",
pageParam: "",
limitParam: "",
startParam: "",
reader: {
type: "json",
rootProperty: "data",
messageProperty: "msg"
},
api: {
create: "/json?cmd=pm.role.create",
update: "/json?cmd=pm.role.update",
read: "/json?cmd=pm.role.read"
}
}
});
Теперь я хочу загрузить модель с сервера:
model = PM.model.entity.Role.load(record.get("ID"), {
success:...
});
В результате получается вот такой запрос: http://localhost/json?cmd=pm.role.re...22383262&id=14 Как видите, id в запросе в нижнем регистре, хотя в модели верхний регистр. Это мне не подходит, начал искать как пофиксить. В процессе экспериментов я наткнулся на другую интересную вещь:
...
idProperty: "foo",
fields: [
{ name: "foo",
type: "int"
},
...
Меняю имя поля на нечто совсем другое, а запрос все с тем же "id" получается. В чем дело, как все же поменять имя этого айди? |
никак не поменять ..не смотрит этот метод на idProperty
можно попробовать во второй параметр передать в явном виде:
model = PM.model.entity.Role.load(record.get("ID"), {
foo : record.getId(),
success:...
});
|
Это не будет работать. Все, что после айди, идет в качестве параметров в объектный (не статический) метод load, а там используется для создания операции. Значения полей там не задаются.
|
На офф форуме ответили:
See: http://docs.sencha.com/extjs/5.0/api...er-cfg-idParam Вот так вот... не тот параметр пытался юзать. |
| Часовой пояс GMT +3, время: 05:30. |