【问题标题】:How to specify a View's data binding context when using multiple view models使用多个视图模型时如何指定视图的数据绑定上下文
【发布时间】:2012-03-16 03:38:23
【问题描述】:

假设我们有几个 ViewModel 具有相同的属性名称,例如 IdName,还有 我们已经定义了一个 View 模板(基本上是 HTML)并且想要使用/绑定来自两个 ViewModel 的数据。

问题是如何指定绑定数据上下文,以便指示从哪个视图模型使用绑定属性?

【问题讨论】:

    标签: javascript binding mvvm knockout.js


    【解决方案1】:

    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/

    上分享了一个关于此功能的实例

    【讨论】:

    • 太好了,with: 是我感兴趣的,尤其是对于嵌套的 ViewModel,非常感谢!
    猜你喜欢
    • 2013-02-22
    • 2017-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-25
    • 2012-08-04
    • 2016-06-14
    • 1970-01-01
    相关资源
    最近更新 更多