2012-07-27 59 views
3

我在嘗試使用JQM和MVVM時遇到了一些挑戰。我也嘗試使用knockout.js。jQuery Mobile和MVVM挑戰

例如,目前我想實現類似於iOS的頁面控件(表示你的小圓點可以刷卡導航到下一頁)導航:

Page indicator

的數據進行顯示的內容將從服務器獲取,並且需要在JQM頁面中顯示。所以JQM頁面需要動態創建。

從用戶界面的角度來看,我打算使用包含點的固定頁腳(基於頁數)。

問題在於需要在JQM頁面之間保留的視圖模型,因爲我不想通過頁面從服務器加載數據,數據一次加載,並且預計客戶端將顯示它在頁面中。

我可以擁有一個視圖模型來保存數據並貫穿整個應用程序的生活,並將每個頁面視圖綁定到它。 取而代之的是,只要視圖真的需要視圖模型,我就希望它保持活躍狀態​​。

我在想的解決方案是捕獲jQueryMobile頁面導航事件並查看導航是否位於這些頁面之間。 如果不是,則應刪除視圖模型(將其分配給空值)。 下次如果需要加載這些頁面中的任何一個(例如通過導航回到最後一頁),則會重新創建視圖模型(數據從Web站點再次獲取)。

有沒有更好的方法?

謝謝!

回答

0

您應該查看jQueryMobile文檔中的Persistent Footers page

+0

我已經明確提到我要使用這些。這不是我的問題。問題是如何保持視圖模型活着。 – 2012-07-28 07:15:47

0

爲什麼不嘗試JQM pagination plugin以及持續頁腳@calavoow提及?

這會爲您提供可拖動的JQM頁面,並設置頁腳。

+0

很抱歉,但你也似乎不明白我的問題。 – 2012-07-28 07:16:17

+0

因此,您希望多個頁面「在一個視圖中」,因此您不必重新獲取用戶在瀏覽時看不到的任何頁面?您可以嘗試JQMs multipage,這將允許您加載「x-pages-in-one-document」。如果在「視圖」中有頁面A,B,C,D,則可以設置某些內容以在它們之間導航,而無需從服務器重新獲取任何內容。您的視圖保持活躍狀態​​ – frequent 2012-07-28 08:53:18

+0

雖然多頁​​面很棘手,因爲您無法從已經存在的頁面加載多頁面。 JQM multipage基本上要求你的整個應用程序在多頁面/視圖內(除非你的rel =「external」 - 鏈接到其他JQM頁面(沒有轉換!)你也可以看看我的[multiview plugin](https:/ /github.com/frequent/multiview)。它仍在進行中,但您可以在JQM包裝頁面中使用單個面板,並將所有滑動頁面放在此面板中。 – frequent 2012-07-28 08:56:30