Ext.Menu中的列表没有响应事件

时间:2014-11-28 19:24:22

标签: list listview menu sencha-touch-2 menuitem

我正在尝试使用列表来获取我的Ext.Menu以响应我在Controller中的事件。 我不知道为什么我无法从Ext.Menu的列表中获得响应。 有人可以告诉我我错过了什么。 感谢

  Ext.define('Pear.view.Main', {

 extend: 'Ext.Container',
 xtype: 'main',
 requires: [
    'Ext.Menu'
 ],
 config: {

    layout: {
        type: 'card'
    },

    items: [
        {
            xtype: 'toolbar',
            docked: 'top',
            title: 'Sliding Menu',
            items: [
                {
                    xtype: 'button',
                    id: 'listButton',
                    iconCls: 'list',
                    ui: 'plain',
                    handler: function(){
                        if(Ext.Viewport.getMenus().left.isHidden()){
                            Ext.Viewport.showMenu('left');
                        }
                        else
                        {
                            Ext.Viewport.hideMenu('left');
                        }
                    }
                }
            ]
        }
    ]
  },

 initialize: function(){
    Ext.Viewport.setMenu(this.createMenu(),{
        side: 'left',
        reveal: true
    });
  },


 createMenu: function(){
    var menu = Ext.create('Ext.Menu', {
        layout: 'fit',
        width: 220,
        xtype:'menuList',

        items: [{
            xtype: 'titlebar',
            title: 'Side menu'
        }, {
            xtype: 'list',
            itemTpl: '{title}',
            //store: 'Beginning',

            data: [{
                title: 'Menu item 1'
            }, {
                title: 'Menu item 2'
            },


            {
                title: 'Menu item 3'
            }, {
                title: 'Menu item 4'
            }]
        }]
      });
      return menu;
      }
    });

我的控制器

  Ext.define( 'Pear.controller.Main', {     
  extend:'Ext.app.Controller',

   config:{
      refs: {
          Main: 'main',
             },


      control: {

           'main list ':{
            itemtap:function(list,index,target,record){      
            console.log("Option 2 Tapped");
          }
         },    


        },


       }
      });

1 个答案:

答案 0 :(得分:0)

您的列表引用错误。获取项目引用的最佳方法是将配置名称属性设置为该项目,如下所示: -

{
            xtype: 'list',
            itemTpl: '{title}',
            name: 'menu_list',  // add this property to get the reference

            data: [{
                title: 'Menu item 1'
            }, {
                title: 'Menu item 2'
            },


            {
                title: 'Menu item 3'
            }, {
                title: 'Menu item 4'
            }]
}

在控制器中添加控件: -

 Ext.define( 'Pear.controller.Main', {     
  extend:'Ext.app.Controller',

   config:{
      refs: {
         menuList : "list[name='menu_list']"
             },


      control: {

           menuList : {
            itemtap: function(list,index,target,record){      
            console.log("Option 2 Tapped");
           }
         }   
        }
      }
      });