有很多事情我不清楚如何在Sencha Touch中最好地處理數據。Sencha Touch 2 MVC - 如何在視圖和控制器之間傳遞/緩存數據
1我正在從Rest Store的控制器操作中加載數據。
Ext.ModelManager.getModel('MyApp.model.CheckIn').load(barcode, {
synchronous: true,
success: function(model) {
that.checkInConfirm({model:model});
}
});
然後通過調用一些字段的相應設置器來更新視圖,例如, this.getNickname().setValue(options.model.data.nickname);
在此之後,視圖被激活this.getMain().setActiveItem(myView);
這是將數據從控制器傳遞到視圖的最佳方式嗎?
2在視圖中操縱數據後,通過點擊按鈕觸發另一個控制器動作。然後我想要更新1中加載的數據。但是此刻我以前加載的數據丟失了。我是否必須從服務器再次加載它,或者有另一種方法來保存以前加載的數據?
Thx!由於看起來沒有處理這個問題的「Sencha方式」,所以我想這就是(或者說一種)方式。在我的控制器init方法中,我創建了一個名爲模型的空對象,我按照您的建議用於存儲數據。 – karazy
我就是這麼做的!我爲它創建了一個空的「模型」和一個空的「視圖」對象。 Sencha 2還將提供以下功能: http://docs.sencha.com/touch/2-0/#!/api/Ext.app.Controller 此外,您還可以爲嵌套控制器創建一個空的「控制器」對象。 –
另外,你可以讓你自己的CustomController派生自Ext.Controller,它允許你通過它的typename指定模型,子控制器和視圖!在您的構造函數中(您已經擴展),然後可以遍歷指定的所有模型名稱並實例化它們並正確分配它們,以便可以通過該名稱訪問它們。通過這種方式,您可以輕鬆地將模型,視圖和子控制器附加到您的控制器,只需指定它們的名稱即可輕鬆訪問它們。 –