2013-02-14 44 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