我正在创建一个新的模型实例:
component.record = Ext.create('MyApp.model.HolidayModel',{id:0});
Ext.getStore("HolidayStore").add(component.record);
Ext.getStore("HolidayStore").sync();
id
是ExtJS中的默认idProperty,我没有改变它。
在同步期间,以下内容将发送到服务器:
{"id":0,"cls":"blue","country":"Republik Österreich","enddatelist":["15.08.2014", "15.08.2015",…],"name":"Mariä Himmelfahrt","startdatelist":["15.08.2014", "15.08.2015",…],"statelist":[]}
以下内容由服务器回答:
{"success":true,"data":[{"id":30,"name":"Mariä Himmelfahrt","country":"Republik Österreich","startdatelist":["15.08.2014", "15.08.2015",…],"enddatelist":["15.08.2014", "15.08.2015",…],"statelist":[],"cls":"blue"}],"Debug":[],"Message":"","Caption":""}
应告诉ExtJS必须更新已发布模型实例的ID,对吗?
(商店的读者有根:"数据"设置。)
然而,记录仍有id:0
- 所以,如果我
然后第一个实例不再显示在HolidayStore绑定的网格中。
任何想法为什么?是因为新模型实例不是在数组中发送,而是在数组中返回模型吗?
答案 0 :(得分:0)
尝试component.record = Ext.create('MyApp.model.HolidayModel',{});
也许ExtJS不会更新已设置的字段。
答案 1 :(得分:0)
我想引用自己的话:
是因为新模型实例不是在数组中发送,而是在数组中返回模型吗?
并补充一点,结果证明这是原因。
我现在总是将它作为数组(allowSingle:false
)发送,并且id设置正确。