如何在调用MyApp.MyModel.load()后通知与模型关联的所有商店?或者,有没有办法通过Id从商店的上下文加载1条记录?
我的最终目标是从服务器获取一条记录,并刷新绑定到其中包含记录的商店的列表。
答案 0 :(得分:1)
不要做Myapp.model.load。改为使用store.load。
因为你真正想做的是:
function refreshSingleItem(store,id) {
store.remove(store.getById(id));
store.getProxy().setExtraParam("id",id);
store.load({addRecords:true;});
}
答案 1 :(得分:0)
加载商店时,所有记录都会加载到该商店。您不需要任何其他内容,因为如果您不将其存储在客户端,则不必通过网络加载所有内容。
无法进行一次通话并更新所有已在url
中进行该通话的商店。它只会更新一个商店,您需要自己编码的所有其他内容。
也就是说,您可以随时使用相同型号制作第二个商店,并将第一个商店中的单个记录加载到第二个商店:
store1.on('load',function() {
store2.add(store1.getById(recordId));
});
Voilà,现在你有一个只有一个记录的商店,你可以根据需要加载任何其他记录。但是,与其他方式相比,这需要的频率较低。所以,假设你有一个记录:
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
}]
}]
然后,您可以将参与者定义为model1中没有类型的字段,使用姓名和电话制作模型2,然后执行以下操作:
store1.on('load',function() {
form.loadRecord(store1.getAt(0));
store2.add(store1.getAt(0).get("participants"));
});