添加初始化功能时 Sencha xtype 导航失败

Posted

技术标签:

【中文标题】添加初始化功能时 Sencha xtype 导航失败【英文标题】:Sencha xtype navigation fails when adding initialize function 【发布时间】:2013-02-28 16:45:54 【问题描述】:

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

感谢您的帮助!

【问题讨论】:

【参考方案1】:

我认为你需要在你的 init 中调用父级 init 方法:

...
initialize : function() 
  this.callParent(arguments);
  ...
  // Rest of your code...
,
...

【讨论】:

【参考方案2】:

在初始化函数内部尝试先创建对象,然后像这样将它们添加到容器中

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

【讨论】:

这没什么区别,链接和按钮出现在底部栏中,但它们只是'死'......

以上是关于添加初始化功能时 Sencha xtype 导航失败的主要内容,如果未能解决你的问题,请参考以下文章

在 Sencha Touch 2 中创建 xtype ?

Sencha Touch 2:如何覆盖导航视图上的后退按钮

Xtype 文本字段上的 Sencha 触摸键盘下一个按钮

如何使用 Sencha Touch 2 获取表单面板和禁用选择字段

sencha touch load store 手动

Sencha Touch 动态添加项目