83

是否可以从给定的 DOM 元素中获取绑定的 ViewModel JavaScript 对象?

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 );
4

1 回答 1

139

Knockout 有两种实用方法可能会有所帮助。

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

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

所以如果我理解你的问题,你可以ko.dataFor在这里使用。这是一个使用dataFor.

于 2012-12-23T23:47:52.580 回答