2015-01-09 1 views
0

Я использую кнопку для перемещения между вкладками. Но для этого я должен запомнить позицию вкладки пользователя. Поэтому мои кнопки продолжают работать, когда пользователь покидает экран и возвращается позже.Не удалось перехватить событие изменения вкладок

Событие tabchange должно быть событием для использования, но я не могу заставить его запускать.

Вид:

Ext.define('MyApp1.view.Home', 
{ 
    extend: 'Ext.form.Panel', 

    requires: 
    [ 
     'Ext.tab.Panel' 
    ], 

    xtype: 'home', 

    config: 
    { 
     itemId: 'home', 
     layout: 'fit', 

     items: 
     { 
      xtype: 'tabpanel', 
      tabBarPosition: 'top', 
      height: 500, 
      renderTo: document.body, 
      listeners: 
      { 
       beforetabchange: function (tabs, newTab, oldTab) 
       { 
        console.log('tab is going to change'); 
       }, 
       tabchange: function() 
       { 
        console.log('recorded tab change from listener'); 
       }, 
       change: function() 
       { 
        console.log('change of tab from listener'); 
       } 
      }, 

      items: 
      [ 
       { 
        title: 'one' 
       }, 
       { 
        title: 'two' 
       } 
      ] 
     } 
    } 
}); 

Контроллер:

Ext.define('MyApp1.controller.HomeController', 
{ 
    extend: 'Ext.app.Controller', 

    requires: 
    [ 
     'MyApp1.view.Main' 
    ], 

    config: 
    { 
     refs: 
     { 
      home: 'home' 
     }, 
     control: 
     { 
      home: 
      { 
       beforetabchange: 'onTabChange', 
       tabchange: 'onTabChange', 
       change: 'onTabChange' 
      } 
     } 
    }, 

    init: function() 
    { 
     console.log('HomeController initialized'); 
    }, 

    onTabChange: function() 
    { 
     console.log('active tab changed'); 
    } 
}); 

Так я вижу текст инициализации в журнале, но ни одно из событий изменения вкладки при нажатии кнопки на вкладке.

ответ

0

Во-первых, кажется, можно только реализовать эти слушатели на tabBar из tabPanel

Просмотрев исходный код, хотя, кажется, что это никогда не уволил, даже если это документально. http://docs-origin.sencha.com/touch/2.4/2.4.1-apidocs/source/Bar3.html#Ext-tab-Bar-event-tabchange

То, что я мог бы предложить либо, как вы указали на крючок в activeitemchange случае на панели или activetabchange (что странно стреляет дважды) событием tabbar в activeitemchange также, кажется, не работает должным образом.

https://fiddle.sencha.com/#fiddle/g44

0

Оказывается, я смотрел документы ExtJs 5, а не документы Sencha 2.4.1 ... У меня только есть событие «activeitemchange».