Js-从 DOM 元素获取 ViewModel

是否可以从给定的 DOM 元素获得绑定的 ViewModelJavaScript 对象?

ko.applyBindings( gLoginViewModel, document.getElementById("login-form") );
ko.applyBindings( gLoginViewModel, document.getElementById("register-form") );

而在其他地方——在毫不相关的代码中——类似这样的东西:

var viewModel = ko.getViewModel( formElement );
viewModel.someObservable( someData ); // observable available in all ViewModels

如果我能做这样的事情就更好了:

var viewModel = ko.getViewModel( someChildElement );
47124 次浏览

淘汰赛有两个 实用方法可能会有帮助。

  • ko.dataFor将返回元素绑定到的 ViewModel。
  • ko.contextFor返回当前元素的“绑定上下文”。从这个方法返回的对象将返回如下内容:

    {
    $data: ...,
    $parents,
    $root
    }
    

So if I understand your question, you can probably use ko.dataFor here. Here's a simple example using dataFor.