如何在使用多个视图模型时指定View的数据绑定上下文

时间:2012-02-26 09:18:30

标签: javascript binding mvvm knockout.js

假设我们有少量ViewModel具有相同的属性名称,如IdName, 我们定义了一个View模板(基本上是HTML),并希望使用/绑定来自两个ViewModel的数据。

问题是如何指定绑定数据上下文,以便它可以指示哪个View Model使用绑定属性?

1 个答案:

答案 0 :(得分:2)

http://knockoutjs.com/documentation/observables.html所述,您可以选择将第二个参数传递给ko.applyBindings,以定义要搜索数据绑定属性的文档部分。例如,ko.applyBindings(myViewModel, document.getElementById('someElementId'))。这会将激活限制为具有ID someElementId及其后代的元素,如果您希望拥有多个视图模型并将每个视图模型与页面的不同区域相关联,这将非常有用。

另一种选择是使用ko 1.3+上引入的with:绑定,它根据特定的viewModel属性呈现DOM。这很好,因为如果属性为null,则根本不呈现任何内容。 Steve在http://jsfiddle.net/StevenSanderson/f5w6u/3/light/

上分享了有关此功能的实例