当我编写 ExtJS Controller 的代码时,经常需要从回调函数访问存储或 View 。问题是这些引用在 Controller 的范围内,而不是在函数的范围内。 例如,如果我想重新加载网格的数据,我会成功写入一条新记录:
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"]);
}
}});
创建用户后,我想刷新我的商店,但我无法使用 View 和商店 Controller 字段,因为我处于不同的范围内。 从现在开始我使用 Ext.getCmp() 来检索任何组件?这是一个好的做法吗?这是解决这些情况的最佳方法吗?
最佳答案
您可以使用Ext.getStore('your.store.name');
获取对商店的引用并调用您想要的任何方法。
调用reload()
在商店上将触发加载事件,对于 GridView 之类的内容将触发 View 刷新
关于javascript - Ext JS 通过回调访问 View 和存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22632092/