Sencha touch:推送组件多次一次不起作用

时间:2013-01-05 00:11:59

标签: extjs sencha-touch sencha-touch-2 sencha-architect

当用户点击某个项目时,我在列表项目披露时有一个包含处理程序的列表 我正在使用下一个代码推送表单视图:

list.up('navigationview').push({
xtype: 'xEditAddFormPanel',
title: 'Edit task',
data: record.getData()
});

首次点击它正常工作,导航显示xEditAddFormPanel ..

然后,点击后退按钮(然后返回列表界面),再按下列表项(再次触发上述代码) - 现在没有任何反应。

如何再次显示表单屏幕?

2 个答案:

答案 0 :(得分:1)

我遇到了同样的问题,原因是第二次将视图推入导航器时,监听器丢失了。为什么?因为每次将视图推入导航器时,旧视图都会被破坏,并将所有听众带到坟墓......

为了解决这个问题,每当我创建一个我想推送的新视图时,我都会手动绑定事件:

onXButtonTap: function () {
    var view = Ext.create('MyApp.view.XEntryView');
    //Bind the events you need manually every time you push.
    view.on('myEvent', this.onSubmitNewX);
    this.getXMainView().push(view);
}

答案 1 :(得分:0)

通常在Sencha中,您必须手动销毁组件。您可能需要执行以下操作:

var formPanel = Ext.create('YourApp.view.EditAddFormPanel', {
    title: 'Edit task',
    data: record.getData()
});

formPanel.onAfter('erased', function(){
    this.destroy();
}, this);

list.up('navigationview').push(formPanel);