knockout.js – 从DOM元素获取ViewModel
是可以从给定的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 );
提前致谢!
淘汰赛有两个实用的方法 ,可能会帮助这里。
-
ko.dataFor
将返回元素绑定的ViewModel。 -
ko.contextFor
返回当前元素的“绑定上下文”。 你从这个方法返回的对象将返回如下所示的内容:{ $data: ..., $parents, $root }
所以如果我理解你的问题,你可以在这里使用ko.dataFor
。 这是一个使用dataFor
的简单示例 。