2016-01-13 7 views
0

У меня есть требование в ExtJS, в котором при нажатии на пункт меню я должен запустить событие из представления и поймать его в контроллере.Как запустить событие из пункта меню и просмотреть его в контроллере в 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*/ 

}, 

ответ

0

Я предполагаю, что ваш селектор не работает, вы можете проверить его с помощью Ext.ComponentQuery.query() или Ext.all().

Если это проблема, попробуйте изменить селектор из:

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

к:

'#menuItem123 menuItem[text=Inherit]' 
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

+0

Спасибо Guiherme Lopes ..... Его работа :) Большое спасибо. –

+0

@AmithSwamy, если это ответит на ваш вопрос, отметьте это как ответ на свой вопрос, чтобы закрыть тему. Чтобы сделать это, нажмите галочку на свой вопрос. –