在我的viewModel上我有一個名爲'bays'的可觀察數組,其中包含一個或多個'bay'對象。每個'bay'對象都包含一個名爲'products'的可觀察數組,它可以包含'product'對象。 隨着我的標記看起來像:Knockout.js - 停止在foreach循環中渲染元素
<div data-bind="foreach: bays">
<div class="bay" data-bind="foreach: products">
<div class="product">
<!-- Product innards -->
</div>
</div>
</div>
如果產品對象從一個托架移動到另一個那麼產品元素,和裏面的一切,似乎被銷燬,然後重新創建,如中可以看到這jfiddle:http://jsfiddle.net/mXyzs/20/
由於我的應用程序可以一次移動托架之間的數百個產品,並且不得不重新創建它們,這會導致性能問題。有沒有什麼方法可以讓淘汰賽重新使用現有的產品html,因爲支持它們的對象不會改變,而不是破壞產品元素並重新創建它們?
http://jsfiddle.net/mXyzs/16/我添加了一個惱人的警報,但你應該看到的是,對象只創建一次。 – Joe 2013-02-26 19:55:30
一個簡單的方法來檢查它們是否被重新創建。使用'data-bind =「text:new Date()」'。這將顯示元素創建的時間。而不是使用惱人的警報。 – 2013-02-26 22:11:19
@Joe我編輯了我的問題和我的jfiddle,因爲我意識到我有點不清楚。我指的是頁面上的產品元素被銷燬,然後在新的托架中再次創建它們,儘管支持綁定的產品對象沒有更改。 – Ric 2013-02-27 12:05:02