如何使用knockout在单个页面中绑定多个视图模型?

时间:2015-04-08 11:54:48

标签: knockout.js

我想使用knockout将我的页面设置为单页面应用程序,我已将其拆分,如下图所示,但不知道如何将多个viewModel绑定到同一个html页面。 enter image description here

3 个答案:

答案 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);

您可以在此处详细了解:

http://knockoutjs.com/documentation/observables.html

答案 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