0

调用 MyApp.MyModel.load() 后如何通知与模型关联的所有商店?或者,有没有办法从商店的上下文中按 Id 加载 1 条记录?

我的最终目标是从服务器获取一条记录并刷新绑定到其中包含该记录的商店的列表。

4

2 回答 2

1

不要做 Myapp.model.load。请改用 store.load。

因为你真正想做的是:

function refreshSingleItem(store,id) {
    store.remove(store.getById(id));
    store.getProxy().setExtraParam("id",id);
    store.load({addRecords:true;});
}
于 2014-09-15T06:09:12.537 回答
0

加载存储时,所有记录都会加载到该存储中。您不会想要其他任何东西,因为如果您不将所有内容存储在客户端,您就不必通过网络加载所有内容。

不可能打一个电话并更新所有在其url. 它只会更新一个商店,其他一切都必须自己编写。

也就是说,您始终可以使用相同的模型创建第二个存储,并将第一个存储中的单个记录加载到第二个存储中:

store1.on('load',function() {
    store2.add(store1.getById(recordId));
});

瞧,现在您的商店只有一条记录,您可以根据需要加载任何其他记录。但这比相反的方式更少需要。所以假设你有一个记录:

data:[{
    meetingId:123,
    time:'2014-09-16T17:40',
    location:'1 Washington Drive, room #1203'
    participants:[{
        name:'John Doe',
        phone:'46318123'
    },{
        name:'Jane Doe',
        phone:'477119524'
    },{
        name:'George Washington',
        phone:null
    }]
}]

然后,您可以将参与者定义为不输入模型 1 的字段,使用名称和电话创建模型 2,然后执行以下操作:

store1.on('load',function() {
    form.loadRecord(store1.getAt(0));
    store2.add(store1.getAt(0).get("participants"));
});
于 2014-09-12T07:00:53.657 回答