ExtJS6:添加的新记录未显示在列表存储中

时间:2016-09-05 12:13:20

标签: extjs extjs6

在extjs中,当使用.save创建记录时,该记录返回带有id的记录,但不会自动显示在列表存储中

1 个答案:

答案 0 :(得分:2)

使用Ext.create('MyModel')创建记录时,它最初不属于任何商店。可能有多个商店可以容纳或不支持。除非您将其添加到特定商店,否则它将独立存在。 E.g:

var model = Ext.create('MyModel',{
    field1:'ABC',
    field2:123
});
model.save({
    success:function(record) {
        if(record.get("id")%2==0) storeEven.add(record);
        else storeOdd.add(record);
    }
});

除非您需要服务器上的其他信息来决定将模型添加到哪个商店,否则更好的方法是直接将模型添加到商店,因此您可以添加以下内容,而不是通过显式名称创建模型。配置到商店,然后同步商店:

var model = store.add({
    field1:'ABC',
    field2:123
});
store.sync();

这样,您的商店就知道您的模型已保存到服务器。如果您已使用model.save将模型存储在服务器上,然后将其添加到存储中,然后再运行store.sync(),则模型将再次发送到服务器。