2013-01-03 29 views
0

我有兩個ListViews(在單獨的視圖中)。這些視圖必須分開查看模型,但ListViews包含相同的實體類型。這兩個視圖允許用戶選擇一個項目並導航到它的細節/編輯視圖。Kendo UI Mobile MVVM - 如何處理導航到單個詳細視圖的兩個列表視圖?

我需要做什麼來共享這兩個列表視圖之間的詳細視圖?

這是我曾嘗試:

指定所選項目的屬性在詳細視圖的視圖模型

這初步顯現的工作,但實際上打破了劍道MVVM。由於該項目位於列表視圖的視圖模型中,因此將其分配給另一個視圖模型中的屬性會導致問題。

在每個視圖的顯示事件

刷新數據,而這幾乎是工作,它有幾個問題。 1)始終獲取新鮮數據可能會很慢。 2)當在詳細信息視圖中保存更改並導航回列表視圖時,保存是異步的,因此不能保證在調用ListView數據之前這些更改將被保留。這也否定了MVVM和observable的好處之一。

共享視圖模型跨越意見

我所看到的例子是有一個列表和詳細視圖,有兩種觀點與selectedItem物業共用一個視圖模型。這在我的特殊情況下是不可能的,因爲我有兩個導航到相同詳細視圖的列表視圖 - 更不用說我更喜歡爲每個視圖分別創建一個視圖模型,以便視圖模型不會變成一個巨大的一塌糊塗。我應該擁有所有觀點共享一個視圖模型嗎?

我錯過了什麼?

回答

0

也許您可以使用toJSON()方法將可觀察模型提取爲普通對象模型,然後通過重新包裝它來創建一個新的可觀察模型。這應該清除現有的綁定並避免您在第一種方法中發現的衝突。

var model = kendo.observable(otherModel.toJSON()); 
相關問題