当我编写ExtJS控制器的代码时,我经常需要从回调函数访问存储或视图。问题是这些引用属于控制器的范围而不属于函数的范围。 例如,如果我想重新加载网格数据,我会成功写一条新记录:
record.set(values);
record.save( {
callback: function(record, operation) {
if (operation.wasSuccessful()) {
Ext.Msg.alert("OK","User Created");
var view= Ext.getCmp('contactlist');
view.getStore().load();
view.refresh();
} else {
Ext.Msg.alert("Error",operation.request.scope.reader.jsonData["error"]);
}
}});
创建用户后我想刷新我的商店,但我不能使用视图和存储控制器字段,因为我在不同的范围内。
从现在开始我使用Ext.getCmp()
来检索任何组件?这是一个很好的做法,这是解决这些问题的最佳方法吗?
答案 0 :(得分:1)
您可以使用Ext.getStore('your.store.name');
获取对商店的引用,并调用您想要的任何方法。
在商店中调用reload()
将触发加载事件,对于像网格视图这样的事件将触发视图刷新