当用户点击某个项目时,我在列表项目披露时有一个包含处理程序的列表 我正在使用下一个代码推送表单视图:
list.up('navigationview').push({
xtype: 'xEditAddFormPanel',
title: 'Edit task',
data: record.getData()
});
首次点击它正常工作,导航显示xEditAddFormPanel
..
然后,点击后退按钮(然后返回列表界面),再按下列表项(再次触发上述代码) - 现在没有任何反应。
如何再次显示表单屏幕?
答案 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);