我正在尝试根据父选择的选择绑定子选择的内容。
从父列表中选择不同的项目时,子选择的内容似乎已正确更新。
但是,当您从子选择中选择一个项目时,它的内容将恢复为第一次绑定时提供的数据。
为什么子列表的内容会恢复?
下面的JsFiddle http://jsfiddle.net/Xbt6k/
HTML
<div id="upper">
<select size="5" data-bind="options: optionsUpper, value: selectedOptionUpper, event:{ change: changed }"></select>
</div>
<div id="lower">
<select data-bind="options: optionsLower, value: selectedOptionLower" size="5"></select>
</div>
Javascript
var VM1 = function () {
var self = this;
self.selectedOptionUpper = ko.observable();
self.optionsUpper = ko.observableArray([1, 2]);
self.changed = function () {
var s = self.selectedOptionUpper();
var data;
if (s == 1) {
data = ['one', 'two', 'three'];
} else if (s == 2) {
data = ['a', 'b', 'c'];
}
ko.applyBindings(new VM2(data), document.getElementById('lower'));
};
};
var VM2 = function (data) {
var self = this;
self.selectedOptionLower = ko.observable();
self.optionsLower = ko.observableArray(data);
};
ko.applyBindings(new VM1(), document.getElementById('upper'));