简体   繁体   English

Knockout.js - 从 DOM 元素获取 ViewModel

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM