[英]knockout.js - Get ViewModel from DOM element
is is possible to get the binded ViewModel JavaScript object from a given DOM element?是否可以从给定的 DOM 元素中获取绑定的 ViewModel JavaScript 对象?
ko.applyBindings( gLoginViewModel, document.getElementById("login-form") );
ko.applyBindings( gLoginViewModel, document.getElementById("register-form") );
and somewhere else - in rather unrelated code - something like this:和其他地方 - 在相当不相关的代码中 - 像这样:
var viewModel = ko.getViewModel( formElement );
viewModel.someObservable( someData ); // observable available in all ViewModels
it would even be better if I could do something like:如果我能做这样的事情就更好了:
var viewModel = ko.getViewModel( someChildElement );
Knockout has two utility methods that might help here. Knockout 有两种实用方法可能会有所帮助。
ko.dataFor
will return the ViewModel that the element is bound to. ko.dataFor
将返回元素绑定到的 ViewModel。 ko.contextFor
returns the "binding context" of the current element. ko.contextFor
返回当前元素的“绑定上下文”。 The object you get back from this method will return something like:您从此方法返回的对象将返回如下内容:
{ $data: ..., $parents, $root }
So if I understand your question, you can probably use ko.dataFor
here.所以如果我理解你的问题,你可能可以在这里使用ko.dataFor
。 Here's a simple example using dataFor
.这是一个使用dataFor
的简单示例。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.