kickout.js-从DOM元素获取ViewModel


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

Answers:


138

淘汰赛有两种实用方法,可能在这里有用

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

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

因此,如果我了解您的问题,则可以ko.dataFor在此处使用。这是一个使用的简单示例dataFor


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.