今天遇到一个很奇怪的问题,form新增一条记录后,产生一个model,然后加到store中提交
var model = Ext.create('Model‘, form.getForm().getValues());
grid.store.add(model);
grid.store.sync();
store.sync()怎么样都不执行,看了例子都是对的,后来查了不少东西总算明白了原来是
model.phantom 这个属性,要设置为true,表示此数据在服务器上没有,只在客户端有,那么为什么新建的model的
model.phantom 为false呢,是因为新增的时候如果 model.idProperty 设置的字段如果有值的话,ext 就认为这条数据
在服务器端已经有了,就不会去更新了。
但是idProperty 不设置又会有新的问题 即是grid 选中了一条,在刷新过后,选中的那么会失去选中状态。
最终解决办法,
var model = Ext.create('Model‘, form.getForm().getValues())
model.phantom =true;
form.modulegrid.store.add(model);
form.modulegrid.store.sync();