2013-01-05 32 views
2

我有一個列表項的處理程序公開的列表,當一個項目 我推下一個代碼的形式查看用戶點擊:煎茶觸摸:推成分多於一次不行

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

在第一次點擊它的工作和導航顯示xEditAddFormPanel ..

但隨後,單擊後退按鈕後(並返回到列表屏幕),然後再次按列表項(什麼觸發了上面的代碼再次) - 現在沒有任何反應。

如何再次顯示錶單屏幕?

回答

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

當我摧毀,然後嘗試創建並重新添加我碰到下面的錯誤,當我使用推送功能「遺漏的類型錯誤:無法調用空的‘分離’」,你怎麼看? – Oriel

+0

你有'var formPanel = ...'或者只是'formPanel = ...',就像我原來放在上面(現在更新)的那樣?如果是後者,請使用'var'來嘗試,因爲它的範圍是正確的。 – bjudson

1

我有同樣的問題,究其原因是,監聽器(S)是(是)失去了你推一個視圖到導航器中的第二次。爲什麼?因爲每次將視圖推入導航器時,舊視圖都會被破壞,並將所有聽衆帶入墳墓...

要解決此問題,我會在每次創建新視圖時手動綁定這些事件通緝推:

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