添加初始化函数时,Sencha xtype导航失败

时间:2013-02-28 16:45:54

标签: javascript extjs sencha-touch-2

我有一个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');
},

感谢您的帮助!

2 个答案:

答案 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);