Sencha touch 带多个控制器的TabBarView(最佳实践)
Sencha touch 带多个控制器的TabBarView(最佳实践),sencha-touch,sencha-touch-2,Sencha Touch,Sencha Touch 2,由于我是sencha touch 2.0的新手,我想知道: 如何为每个选项卡创建带有控制器的TabBarView? 我的想法: 创建控制器并更改。但一定有更优雅的方式吗 我的第一个方法: Ext.define('app.controller.MainController', { extend: 'Ext.app.Controller', views: [ 'TabBar', 'About' ], ref: [ ],
由于我是sencha touch 2.0的新手,我想知道:
如何为每个选项卡创建带有控制器的TabBarView? 我的想法:
创建控制器并更改。但一定有更优雅的方式吗 我的第一个方法:
Ext.define('app.controller.MainController', {
extend: 'Ext.app.Controller',
views: [
'TabBar',
'About'
],
ref: [
],
requires: [
'app.controller.About'
],
init: function() {
// Create tabbar and listen for events
this.tabBarView = this.getTabBarView().create();
this.tabBarView.addListener('activeitemchange', this.onActiveitemchange, this);
// Add views to tabbar
var aboutView = this.getAboutView().create();
this.tabBarView.add(aboutView);
// TODO: Add more views
// Crate application listeners
this.application.addListener('changeTab', this.changeTab, this);
},
/**
* Change tab (fired from views inside tabbar)
*/
changeTab : function() {
this.tabBarView.setActiveItem(0);
},
/**
* Listen for tabchange an map controller to view
*/
onActiveitemchange : function(container, newView, oldView, e) {
console.info("tabchange");
// Create appropiate controller
switch (newView.alias[0]) {
case 'aboutView':
var aboutController = this.application.getController('About');
break;
// TODO: Add more breakpoints
default:
console.warn("No controller mapped to: "+newView.alias);
};
// TODO: Remove old controller
}
});
定义多个控制器,在应用程序中配置它们,并在每个控制器中使用以下各项:
init: function() {
this.control({
'your selector': {
event: 'function-name to execute on event'
},
....
});
}
仅在相应选项卡控制器中的可用组件上配置控件。请您详细解释。我不明白,这并不能解决问题。我有和@fabian一样的问题。