繁体   English   中英

ExtJs 4.2,来自商店加载事件的网格relayEvents导致Uncaught TypeError:undefined不是函数

[英]ExtJs 4.2, grid relayEvents from store load event cause Uncaught TypeError: undefined is not a function

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

为此,我想将此网格后面的商店的“加载”事件转发给网格本身。

我想我可以使用这里描述的Extjs relayEvents函数

这是我的代码:

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+')');

},

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

在Chrome下我得到:

未捕获的TypeError:undefined不是函数ext-all-dev.js:17772

和Firefox我得到:

TypeError: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');
},

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM