假设我们有几个具有相同属性名称的 ViewModel,例如 Id
、Name
,还有
我们已经定义了一个 View 模板(基本上是 HTML)并且想要使用/绑定(bind)来自两个 ViewModel 的数据。
问题是如何指定绑定(bind)数据上下文,以便它是一种指示从哪个 View 模型使用绑定(bind)属性的方法?
最佳答案
如 http://knockoutjs.com/documentation/observables.html 所述,您可以选择将第二个参数传递给 ko.applyBindings
以定义要搜索数据绑定(bind)属性的文档的哪一部分。例如,ko.applyBindings(myViewModel, document.getElementById('someElementId'))
。这将激活限制为 ID 为 someElementId 的元素及其后代,这在您想要拥有多个 View 模型并将每个 View 模型与页面的不同区域相关联时非常有用。
另一种选择是使用在 ko 1.3+ 中引入的 with:
绑定(bind),它根据特定的 viewModel 属性呈现 DOM。这很好,因为如果该属性为 null,则根本不会呈现任何内容。 Steve 在 http://jsfiddle.net/StevenSanderson/f5w6u/3/light/ 上分享了有关此功能的实例
关于javascript - 使用多个 View 模型时如何指定 View 的数据绑定(bind)上下文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9451901/