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

how to bind several view models in a single page using knockout?

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

您可以使用 ko.applyBindings(viewModel, element) 将绑定应用于不同的元素,使用不同的 ViewModel,如下所示:您不能将多个 viewModel 绑定到同一元素,否则敲除会引发错误。

// 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

查看参考文档: http://knockoutjs.com/documentation/observables.html

ko.applyBindings 函数有两个参数,第一个是视图模型,第二个(可选)是它应该应用到的 dom 元素。您可以将多个视图模型应用于页面上的每个容器元素。

ko.applyBindings(viewmodel1, $("#container1")[0]);
ko.applyBindings(viewmodel2, $("#container2")[0]);
ko.applyBindings(viewmodel3, $("#container3")[0]);

您可以使用

ko.applyBindings(viewModel, element) 

"With"绑定