我想使用knockout将我的页面设置为单页面应用程序,我已将其拆分,如下图所示,但不知道如何将多个viewModel绑定到同一个html页面。
答案 0 :(得分:9)
您可以使用ko.applyBindings(viewModel, element)
将绑定应用于不同的元素,使用不同的ViewModel:您不能将多个viewModel绑定到同一个元素,否则knockout会抛出错误。
// Element
var element = document.getElementById('myElement');
ko.applyBindings(new MyViewModel(), element);
// Element 1
var element1 = document.getElementById('myElement1');
ko.applyBindings(new MyViewModel1(), element1);
您可以在此处详细了解:
答案 1 :(得分:2)
查看参考文档: http://knockoutjs.com/documentation/observables.html
ko.applyBindings
函数有两个参数,第一个是视图模型,第二个(可选)是应该应用它的dom元素。您可以将多个视图模型应用于页面上的每个容器元素。
ko.applyBindings(viewmodel1, $("#container1")[0]);
ko.applyBindings(viewmodel2, $("#container2")[0]);
ko.applyBindings(viewmodel3, $("#container3")[0]);
答案 2 :(得分:0)
你可以使用
ko.applyBindings(viewModel,element)或“With”binding