ExtJs 4.2, 网格中继来自存储加载事件的事件导致未捕获的类型错误: 未定义不是一个函数



这是上下文,我有一个可以由用户动态重新加载的网格。由于内容每次都不同,我想在网格的标题中添加网格中存在的元素数。

为此,我想将这个网格后面的商店的"load"事件中继到网格本身。

我想我可以使用 Extjs 中继事件函数,如此处所述

这是我的代码:

initComponent : function(){
    var me = this;
    me.relayEvents(this.getStore(), ['load'], 'store');
    me.callParent();
},

由于我使用的是 MVC 架构,因此事件随后在网格的控制器中处理,如下所示:

init : function() {
    this.control({
        'genericGrid' : {
            storeload: this.setTitle
        }
    });
},
setTitle : function(grid){
    var total=grid.getStore().count();
    grid.setTitle('List ('+total+')');
},

但是,当我启动应用程序时,我得到的只是白色页面和错误。

在Chrome下,我得到:

捕获的类型错误:未定义不是一个函数 ext-all-dev.js:17772

和火狐我得到:

类型错误:item.on 不是一个函数 ext-all-dev.js:17772

在Chrome上探索stackTrace,我发现错误来自relayEvents方法。

有人可以告诉我我做错了什么,或者另一种方式?

在你的 initComponet 函数中交换 me.callParentme.relayEvents 的顺序。在 callParent 之后,应该创建存储,然后 getStore(( 应该返回存储实例。

initComponent : function(){
  var me = this;
  me.callParent();
  me.relayEvents(this.getStore(), ['load'], 'store');
},

相关内容

  • 没有找到相关文章

最新更新