3

我有一个 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

好的,问题在于初始化函数。任何初始化都会禁用导航 (??)

initialize : function() {
    console.log('init home');
},

谢谢你的帮助!

4

2 回答 2

3

我认为您需要在 init 中调用父 init 方法:

...
initialize : function() {
  this.callParent(arguments);
  ...
  // Rest of your code...
},
...
于 2013-03-01T20:22:53.150 回答
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);
于 2013-03-01T06:11:14.950 回答