Ben*_*Ben 5 javascript grid extjs event-handling
这是上下文,我有一个可以由用户动态重新加载的网格。由于内容每次都不同,我想在网格的标题中添加网格中存在的元素数量。
为此,我想将该网格后面的商店的“加载”事件中继到网格本身。
我想我可以使用 Extjs relayEvents 函数,如此处所述
这是我的代码:
initComponent : function(){
var me = this;
me.relayEvents(this.getStore(), ['load'], 'store');
me.callParent();
},
Run Code Online (Sandbox Code Playgroud)
由于我使用的是 MVC 架构,因此事件会在网格控制器中处理,如下所示:
init : function() {
this.control({
'genericGrid' : {
storeload: this.setTitle
}
});
},
setTitle : function(grid){
var total=grid.getStore().count();
grid.setTitle('List ('+total+')');
},
Run Code Online (Sandbox Code Playgroud)
但是,当我启动应用程序时,我得到的只是空白页面和错误。
在 Chrome 下我得到:
未捕获的类型错误:未定义不是函数 ext-all-dev.js:17772
和火狐我得到:
类型错误:item.on 不是函数 ext-all-dev.js:17772
在Chrome上探索stackTrace,我发现错误来自relayEvents方法。
有人可以告诉我我做错了什么,或者也许有其他方法可以做到这一点?
小智 5
me.callParent
在您的 initComponet 函数中交换和的顺序me.relayEvents
。在 callParent 之后,应该创建 store,然后 getStore() 应该返回 store 实例。
initComponent : function(){
var me = this;
me.callParent();
me.relayEvents(this.getStore(), ['load'], 'store');
},
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1860 次 |
最近记录: |