我有一个Home.js视图,其中有一些嵌入式xtype用于底栏中的子页面。首先我在配置中添加了其他视图,一切都很好,但现在我需要使用initalize方法设置其他一些东西(即用户名)。
但是,现在导航到其他视图不再发生了。没有任何事情发生,没有动作或任何错误。视图仍然正确显示。
视图
Ext.define('MyApp.view.Home', {
extend : 'Ext.tab.Panel',
id : 'home',
xtype : 'homeview',
requires : ['Ext.TitleBar', 'Ext.Video', 'MyApp.view.Profile'],
initialize : function() {
console.log('Initializing Home');
var me = this
var config = me.getInitialConfig();
var username = config.username;
var items = [];
items.push({
xtype : 'titlebar',
docked : 'top',
title : 'Hello ' + username
}, {
xtype : 'updatesview',
}, {
xtype : 'searchview',
}, {
xtype : 'profileview'
}, {
xtype : 'messagesview'
}, {
xtype : 'sensesview'
});
me.setItems(items);
console.log('Initializing Home');
},
config : {
title : 'Home',
iconCls : 'home',
tabBarPosition : 'bottom'
}
});
切换回此功能(????)
旧视图,仅使用配置
Ext.define('MyApp.view.Home', {
extend : 'Ext.tab.Panel',
id : 'home',
xtype : 'homeview',
requires : ['Ext.TitleBar', 'Ext.Video', 'MyApp.view.Profile'],
config : {
title : 'Home',
iconCls : 'home',
tabBarPosition : 'bottom',
items : [{
xtype : 'updatesview',
}, {
xtype : 'searchview',
}, {
xtype : 'profileview'
}, {
xtype : 'messagesview'
}, {
xtype : 'sensesview'
}]
}
});
更新
我试过了两次
me.setItems(items);
me.addItems(items);
没有工作。
更新2
好的问题在于初始化功能。 ANY init禁用导航(??)
initialize : function() {
console.log('init home');
},
感谢您的帮助!
答案 0 :(得分:3)
我认为您需要在init中调用父init方法:
...
initialize : function() {
this.callParent(arguments);
...
// Rest of your code...
},
...
答案 1 :(得分:0)
内部初始化函数首先尝试创建对象,然后将它们添加到容器中,如下所示
var items = [];
items.push(Ext.create("SecretSensation.view.Updatesview"));
items.push(Ext.create("SecretSensation.view.searchview"));
items.push(Ext.create("SecretSensation.view.profileview"));
items.push(Ext.create("SecretSensation.view.messagesview"));
items.push(Ext.create("SecretSensation.view.sensesview"));
me.add(items);