如何从视图中的菜单项触发事件并在ExtJS中的控制器中捕获它?

时间:2016-01-13 05:19:13

标签: javascript jquery extjs extjs-mvc

我在ExtJS中有一个要求,其中,点击菜单项我必须从视图中触发事件并将其捕获到控制器中。

以下是我的方法,但它不起作用。在调试时,Control会一直到火灾事件发生但它没有在控制器中捕获(不会进入onResetAction函数)

请帮帮我。

查看:

new Ext.menu.Menu ({
                    width: 150,
                    height: 100,
                    itemId: 'menuItem123',
                    margin: '0 0 0 0',
                    items: menuOptions,
                    listeners:{
                        'click': function(menu, menuItem, e, eOpts)
                        {
                            if(menuItem.text === 'Inherit') {
                                 var viewConfig = {
                                            'viewName': 'Preference',
                                            'preferenceElement': preferenceElement,
                                            'scope': menu
                           };
                           menuItem.fireEvent('resetData', viewConfig);

                           }
                            this.hide();
                        }
                    }
                });

控制器:

init: function(application) {

    this.listen({

        component: {                
            'container[itemId=menuItem123] menuItem[text=Inherit]': {
                'resetData': this.onResetAction,
                'refreshLogoData': this.onRefresh
            }
        }
    }); 
},

onResetAction: function(viewConfig) {

  var me = this;

  /* some function*/

},

2 个答案:

答案 0 :(得分:0)

我猜您的选择器不起作用,您可以使用Ext.ComponentQuery.query()Ext.all()进行检查。

如果问题是这样,请尝试从以下位置更改选择器:

'container[itemId=menuItem123] menuItem[text=Inherit]'

为:

'#menuItem123 menuItem[text=Inherit]'

答案 1 :(得分:0)

试试这个

init: function(application) {
    var me = this;

    this.control({
        '#menuItem123 menuitem': { //menuitem all small
            resetData: me.onResetAction,
            refreshLogoData: me.onRefresh
        }
    }); 
},

onResetAction: function(viewConfig) {

  var me = this;

  /* some function*/

},

这是一个类似模式的小提琴:https://fiddle.sencha.com/#fiddle/13p7