我在優化我的Sencha Touch 2應用程序時多次遇到此問題。是否有可能將Ext.Component聲明爲全局變量?
很明顯,我應該保持DOM輕重量,我的申請包含Ext.TabBar
和主要Ext.Container
上面。每次從視圖切換到另一個視圖時,我只需刪除當前視圖並將新視圖添加到該容器。
但問題是,有一些意見,其中有定製數據。我的意思是他們有內在的數據,如html內容,過濾的商店記錄等。當我從主容器中移除它們時,我想以某種方式將它們的「狀態」保存到全局變量中,例如:商業應用程序與產品的細節。當刪除細節從主容器板,我想做的事情是這樣的:
var saved_detail_panel = mainContainer.getActiveItem();
,如果我能做到這一點,後來當我想補充一點,詳細信息面板回到主容器,我可以簡單地使用:
mainContainer.add(saved_detail_panel);
我已經嘗試了很多次,但是找不到可以使用的工作。
高度讚賞任何幫助。謝謝。
更新: 當我在一個控制器將此代碼放在我的事件處理程序:
var temp = Ext.create('taxi.view.location.LocationPanel', {showAnimation: null});
taxi.main_container = temp;
它運作良好,但不是高性能。我想要做的事情是隻在我app.js一旦創建它,就像這樣:
launch: function(){
var temp = Ext.create('taxi.view.location.LocationPanel', {showAnimation: null});
};
只有在控制器使用:
taxi.main_container = temp;
它的工作原理是第一次。但在第二次,它顯示此錯誤:
Uncaught TypeError: Cannot call method 'replaceCls' of null
不知道如果是這樣的一個錯誤ST2:http://www.sencha.com/forum/showthread.php?189025-Calling-Ext.Msg.show-with-items-second-time-給出一個錯誤...我看到在sencha-touch-all-debug.js中有大約20個replaceCls的調用你能看到哪一個是從Chrome堆棧跟蹤中調用的嗎? – 2012-04-27 15:52:22
我的不好,我沒有足夠的耐心來回溯和調試這些核心來源:(即使我現在已經找到了解決方法,通過使用這種:'mainContainer.add({xtype:'LocationPanel ',showAnimation:null});'它仍然在Chrome開發工具中顯示一個奇怪的錯誤:'未捕獲的TypeError:無法讀取屬性'dom'null' – 2012-04-27 16:00:18