2015-05-21 3 views
0

Во-первых, я плохо говорю по-английски. извините.sencha touch2 контроллер не прослушивает событие

мой контроллер не слушает мероприятие .. между контроллером и видом.

Я использую Ext.NavigationView

мой взгляд код: view.js

Ext.define('Mobile.view.Main', { 
extend: 'Ext.NavigationView', 
xtype: 'main', 
requires: [ 
    'Ext.TitleBar', 
    'Ext.dataview.List', 
    'Ext.data.Store' 
], 
config : { 

    navigationBar : { 
     items : [ { 
      iconCls : 'list' 
     },{ 
      iconCls : 'info', 
      align: 'right' 
     } ] 
    }, 

    items : [{ 
     title:'test', 
     //styleHtmlContent : true, 
     scrollable : { 
      direction : 'vertical', 
      directionLock : true 
     }, 
     items:[{ 
      html:'menu', 
      itemId : 'main_menu', 
      height: 300 
     },{ 
      html:'notice', 
      height: 30, 
      style: 'background-color:green' 
     },{ 
      xtype : 'list', 
      height : 270, 
      //styleHtmlContent:true, 
      style: 'background-color:orange', 
      store : Ext.create('Ext.data.Store', { 
       model: 'Mobile.model.Notice' 
      }), 

      loadingText : 'Loading...', 
      itemTpl : [ 
       '<div style="overflow:hidden; white-space:nowrap; text-overflow:ellipsis; padding-right:12px;padding-top:4px;">', 
       '<div style="font-family:Pictos; width:20px; font-size:1em; display:inline-block;">6</div>', 
       '<div style="display:inline;">{title} [{created}]</div>', 
       '</div>' 
      ].join(''), 

      scrollable : false 
     },{ 
      html:'button', 
      height: 80, 
      style: 'background-color:navy' 
     },{ 
      html:'Copyright', 
      height: 30, 
      style: 'background-color:olive' 
     }] 
    }] 
} 

вид контроллер код:

Ext.define('Mobile.controller.MainController', { 
extend: 'Ext.app.Controller', 
config: { 
    refs: { 
     main: 'main', //NavigationView 
     menu : 'main #main_menu' // catch ok. 
    }, 
    control: { 
     //working 
     'main': { 
      initialize: function(obj, opt){ 
       //<debug> 
       console.log('[controller.MainController] main view 초기화..'); 
       //</debug> 
       obj.child('container list').getStore().load(); 
       console.log(this.getMenu()); // working 
      } 
     }, 
     //working 
     'main button[iconCls=list]' : { 
      tap: function(obj, evt, opt){ 
       //<debug> 
       console.log('[controller.MainController] sitemap button tap..'); 
       //</debug> 
      } 
     }, 
     //working 
     'main button[iconCls=info]' : { 
      tap: function(obj, evt, opt){ 
       //<debug> 
       console.log('[controller.MainController] login button tap..'); 
       //</debug> 

       var datePicker = Ext.create('Ext.picker.Date'); 
       Ext.Viewport.add(datePicker); 
       datePicker.show(); 

      } 
     }, 
     //not wokring 
     menu : { 
      initialize : function(){ 
       console.log('test'); 
      } 
     } 
    } 
} 

это событие не работает ...

 //not wokring 
     menu : { 
      initialize : function(){ 
       console.log('test'); 
      } 
     } 

Событие дочернего компонента не работает в контроллере.

кстати мероприятие работает в поле зрения. но не контроллер.

почему ..? Спасибо.

+0

попробовать это, добавьте идентификатор в меню такой же, как itemId.I означает «id:« main_menu »». –

ответ

Смежные вопросы