2013-10-28 81 views
0

訪問數據這是我的設置:DurandalJS:從另一個視圖模型

• shell 
    - sidebar (composition) 
    - page 1 (tab 1) 
    - page 2 (tab 2) 

每一個都有其返回的構造函數自己的視圖模型。我有大量的數據從服務器進來。其中一部分進入邊欄,其餘部分進入兩頁。我可以從外殼獲得數據GET,並使用app.trigger來加載邊欄和頁面1中的數據,但是如果觸發器已被觸發,我如何在切換選項卡後訪問頁面2中的數據?

有沒有辦法將這些數據存儲在某個地方,並在完成加載某個視圖模型後提取它們?

+0

爲什麼頁面2不能監聽事件並保持引用直到需要它? – CodingGorilla

+2

請考慮使用共享AMD模塊,如http://stackoverflow.com/questions/17490401/session-data-with-drandal/17493875#17493875 – RainerAtSpirit

回答

0

您可以編寫AMD模塊負責加載數據並將其保存在客戶端。但是如果你在視圖模型之間共享數據,我會建議你使用breeze.js - 特殊的JavaScript庫,它提供了處理Web應用程序中豐富數據的方法。

+0

中討論的那樣。很多消化。我知道這些是客戶端功能,但除了不能使用EntityQuery方法之外,是否還有其他不使用服務器端微風的其他缺點? – Norbert

+0

@Norbert,據我所知你可以在客戶端Breeze中使用EntityQuery。唯一的缺點是在客戶端複製你的模型。隨意從Breeze.js網站檢查NoDB,ESPN或Edmunds示例 - 它們展示了一種使用Breeze.js而不使用服務器端Breeze控制器和元數據的方法 –

相關問題