【发布时间】:2014-07-03 13:58:58
【问题描述】:
我将多个 ko 视图模型绑定到同一页面中的不同面板,但是当视图模型具有相同名称的属性时,它们似乎失去了与自己的视图模型的绑定,例如:
var Panel1ViewModel = function Panel1ViewModel() {
var self = this;
self.isVisible = ko.observable(false);
self.change1 = function() {
self.isVisible(!self.isVisible());
};
};
ko.applyBindings(Panel1ViewModel(), document.getElementById('panel1'));
var Panel2ViewModel = function Panel1ViewModel() {
var self = this;
self.isVisible = ko.observable(false);
self.change2 = function() {
self.isVisible(!self.isVisible());
};
};
ko.applyBindings(Panel2ViewModel(), document.getElementById('panel2'));
为了更清楚,我在jsfiddle 中重新创建了问题。
我知道我可以用 with 嵌套 ViewModel,但是页面很大,并且某些内容是动态加载的,所以我想将其分开。
有人能解释一下为什么会这样吗?有一个可能的解决方案吗?
【问题讨论】:
标签: javascript jquery web knockout.js viewmodel