将多个knockout viewmodel脚本绑定到一个视图

时间:2015-05-28 09:02:44

标签: javascript knockout.js

我需要将两个敲除视图模型绑定到一个视图。我已经阅读了这样的例子和优惠

var viewModel1 = function(){
var self = this;
self.firstName = ko.observable();
self.lastName = ko.observable();
self.fullName = ko.computed(function(){
    return self.firstName + " " + self.lastName;
});
};

var viewModel2 = function(){
var self = this;
self.premium = ko.observable();
};

ko.applyBindings(new viewModel1(), document.getElementById("container1"));
ko.applyBindings(new viewModel2(), document.getElementById("container2"));

但我的viewmodel位于单独的js文件中。如何将它们绑定到视图?例如

<script>
   $(function() {
        window.viewModal1 = new CandidatesViewModal();
        window.viewModal2 = new CandidatesViewModal();
    });

        ko.applyBindings(viewModal1 , $('#viewModal1 ').get(0));
        ko.applyBindings(viewModal2 , $('#viewModal2 ').get(0));
</script>

但这种方法不起作用。感谢您的帮助。

1 个答案:

答案 0 :(得分:3)

您应该创建一个容器视图模型,例如像这样:

var container = {
  vm1: new viewModel1(),
  vm2: new viewModel2()
}

ko.applyBindings(containerVm);

并相应调整您的观点。