【发布时间】:2016-07-06 18:57:12
【问题描述】:
我希望能够通过绑定到属性来创建绑定上下文,就像with 绑定的工作方式一样:
<div data-bind="with: myData">
<button data-bind="text: myHeader"></button>
</div>
但我不想使用with,因为每次myData 更改时,它都会重新创建HTML 元素(在我的示例中为button),请参阅http://knockoutjs.com/documentation/with-binding.html:
如果您提供的表达式涉及任何可观察的值,则 每当这些可观察值中的任何一个时,都会重新评估表达式 改变。然后,后代元素将被清除,并且一个新的副本 的标记将被添加到您的文档并绑定在上下文中 新的评价结果。
所以我需要类似于with 绑定的东西,比如说context 绑定:
<div data-bind="context: myData">
<button data-bind="text: myHeader"></button>
</div>
<button> 现在绑定到myData 上下文,所以我不必写:
<div>
<button data-bind="text: myData().myHeader"></button>
</div>
这也在 http://www.knockmeout.net/2012/03/knockoutjs-performance-gotcha-1ifwith.html
with 绑定对于绑定嵌套非常方便 对象/模型,并有助于防止您的数据绑定属性 变得过于冗长。然而,重要的是要了解 with binding 将在绑定时重新渲染整个部分 值变化。
KO中是否存在类似的东西?
【问题讨论】:
标签: javascript knockout.js knockout-3.0