2013-02-14 47 views
1

爲了避免在同一DOM元素上多次調用applyBindings,我將各種視圖模型包裝在observable中。那麼只需將該可觀察項更改爲我想要查看的任何視圖模型以及BAM ...即可。淘汰視圖模型包裹在observable中

,直到我做這樣的事情:

<div data-bind="if:$data"> 
...some bindings in here 
</div> 

當我改變視圖模型,裏面的綁定任何「如果:$數據」塊不更新。

這裏是真正證明這一點小提琴:http://jsfiddle.net/btrauma8/2TxME/

回答

2

這將會給KO 2.2正常工作之前。在2.2中,我們通過僅在真實值/真實值之間的值實際發生變化時重新渲染剖面來提高ififnot的效率。

在很多情況下,人們會對if: items().length這樣的東西進行綁定,並且每次添加項目時都會重新呈現整個部分。

就你而言,只需使用with而不是if即可輕鬆解決這個問題。因爲,你對$data有約束力,它不會真正改變上下文,並會給你以後的結果。

+0

哇,那太快了!謝謝! – 2013-02-14 18:33:45