knockout.js - 从DOM元素获取视图模型(knockout.js - Get View

2019-07-17 13:25发布

是可以从一个给定的DOM元素获得绑定的视图模型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 );

提前致谢!

Answer 1:

淘汰赛有两个实用的方法 ,可以帮助这里。

  • ko.dataFor将返回视图模型的元素绑定到。
  • ko.contextFor返回当前元素的“绑定上下文”。 你从这个方法返回的对象将返回类似:

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

所以,如果我理解你的问题,你也许可以使用ko.dataFor这里。 这里有一个简单的例子使用dataFor



文章来源: knockout.js - Get ViewModel from DOM element