Extjs4 ExtJS 4-控制MVC中项目的事件

Extjs4 ExtJS 4-控制MVC中项目的事件,extjs4,menuitem,extjs-mvc,Extjs4,Menuitem,Extjs Mvc,我在MVC中有一个带有视图类的应用程序: Ext.define('a.view.Mainmenu' ,{ extend: 'Ext.menu.Menu', alias: 'widget.mainmenu', text: 'Menu', items: [ { xtype: 'menucheckitem', id: 'mci1', text: 'a' }, { xtype: 'me

我在MVC中有一个带有视图类的应用程序:

Ext.define('a.view.Mainmenu' ,{
    extend: 'Ext.menu.Menu',
    alias: 'widget.mainmenu',
    text: 'Menu',
    items: [
    {
        xtype: 'menucheckitem',
        id: 'mci1',
        text: 'a'
    },
    {
        xtype: 'menucheckitem',
        id: 'mci2',
        text: 'b'
    }]
});
如何控制控制器中menucheckitems的单击事件?我想检查menucheckitems是否已检查。 我在控制器的init函数中尝试了一些操作,但出现了一个错误(item.down(“mci1”)为null):


我怎样才能把它做好?

项参数已经是您的菜单项了。你不必向下查询

因此,这将是:

if(item.checked && item.getId() == 'mci1'){
...
}

item参数已经是您的菜单项。你不必向下查询

因此,这将是:

if(item.checked && item.getId() == 'mci1'){
...
}
@林戈

根据Sencha文档,menuitem或menucheckitem都没有可用的down()方法(http://docs.sencha.com/ext-js/4-0/#!/api/Ext.menu.CheckItem事件检查更改)

所以,这就是为什么这些都不起作用

menucheckitem的xtype有一个名为“checkchange”的事件。此事件使以下参数可用于函数:

  • 这个(Ext.menu.CheckItem)@Ringo

    根据Sencha文档,menuitem或menucheckitem都没有可用的down()方法(http://docs.sencha.com/ext-js/4-0/#!/api/Ext.menu.CheckItem事件检查更改)

    所以,这就是为什么这些都不起作用

    menucheckitem的xtype有一个名为“checkchange”的事件。此事件使以下参数可用于函数:

    • 此(Ext.menu.CheckItem)
      ...
      init: function() {
      this.control({
          'mainmenu menucheckitem': {
              checkchange: function(item, checked) {
                  if (checked) {
                      if(item.id == 'mci1'){
                        ...
                      }
                  }else{
                      ...
                  }
              }
          }
        });
      }