是否可以从给定的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 );
提前致谢!
答案 0 :(得分:126)
Knockout有两个utility methods可能对此有帮助。
ko.dataFor
将返回元素绑定的ViewModel。 ko.contextFor
返回当前元素的“绑定上下文”。从此方法返回的对象将返回如下内容:
{
$data: ...,
$parents,
$root
}
因此,如果我理解您的问题,您可以在此处使用ko.dataFor
。 Here's a simple example使用dataFor
。