1
我正在使用Knockout.js處理主詳細視圖。基本上,一切工作正常,有一個小缺點:只要當前顯示在詳細視圖中的項目發生更改,主控制器就不會相應地進行自我更新。Knockout.js主詳細視圖 - 如何更新主?
基本上,我明白這是爲什麼:
- 主視圖是基於
ko.observableArray
,因此它僅跟蹤插入和取出物品。它不會對更新的項目做出反應。 - 每當選擇一個項目時,它將被放入作爲詳細視圖基礎的
ko.observable
。 - 一旦更新了詳細視圖,數組自動包含正確的數據(因爲它使用的是同一個對象),但它不反映對UI的更改(因爲沒有項目已插入或更新)。
現在的問題是如何以優雅和正確的方式處理這個問題?
我目前能想到的兩種可能的解決方案:
- 總結每個項目在
ko.observable
陣列內。這樣它將檢測到在細節視圖中所做的任何更改並相應地更新UI。 - 或者:使用
JSON.parse(JSON.stringify(...));
和replace()
將複製的項目複製到陣列中與克隆的對象。由於現在對象已被刪除並插入內部,數組檢測到更改並更新UI。
問題:
- 第一個解決方案是不適合大量數據的容易可行的。至少它會放慢一切。
- 第二個解決方案工作正常,但就是......嗯,好,......根本就不是很好;-)
更好的想法?
您是手動映射還是使用Knockout映射? –
「地圖」是什麼意思?什麼地圖? –