在Listerners之间的ExtJS范围

时间:2016-03-17 12:34:01

标签: extjs

我从我的视野中调用了两次控制器功能。出于某种原因,其中一个呼叫正在工作而另一个呼叫没有。我对ExtJS比较新,所以请帮助我们。

    Ext.define('Gsm.view.systemmessages.SystemMessages', {
    extend: 'Ext.grid.Panel',
    ...
    ...
    ...
    dockedItems: [{
        xtype: 'toolbar',
        dock: 'top',
        items: [{
            xtype: 'textfield',
            name: 'searchfield',
            cls: 'searchfield',
            listeners: {                
                change: function(field, value){
                    this.getController().filterStore(value); <-- can not reach controller from here
                }
            }
        }]
    }],

    columns: [{
        text: 'Tipas',
        width: 150,
        dataIndex: 'type',
        sortable: true
    },
    ...
    ...
    ...
    {   
        ...
        ...
        ...
    }],

    listeners: {
        select: function(RowModel, record, index, eOpts){
            this.getController().onRowClick(record); <-- can reach controller from here
        }
    }
});

1 个答案:

答案 0 :(得分:1)

为什么不让你的监听器成为一个应该自动解析到ViewController的字符串?

listeners : {
    select : 'someSelectName'
}

listeners : {                
    change : 'someChangeName'
}

然后在ViewController中,在上面的那些方法中,然后执行onRowClick和filterStore方法调用。基本上将逻辑从视图移动到ViewController。

someSelectName : function(RowModel, record) {
    this.onRowClick(record);
},

someChangeName : function(field, value) {
    this.filterStore(value);
}