問題は、選択オプションが変更されたときに値が更新されないことです。
そのため、ホンダをトヨタに変更すると、2 番目の select のオプションは正常に変更されましたが、selectedModel は監視可能ではありませんでした。私は何かを逃したに違いない。
JavaScript:
function ViewModel() {
var self = this;
self.selectedMake = ko.observable()
self.selectedModel = ko.observable()
self.makes = ["Honda", "Toyota"];
self.models = ko.computed(function () {
if (self.selectedMake() === "Honda") return ["CRV", "Accord"];
if (self.selectedMake() === "Toyota") return ["Rav4", "Camry"];
return [];
});
}
$(function () {
ko.applyBindings(new ViewModel());
});
HTML:
<select data-bind="value: selectedMake, options: makes"></select>
<select data-bind="value: selectedModel, options: models"></select>
<p>Selected make: <b data-bind="text:selectedMake"></b></p>
<p>Selected model: <b data-bind="text:selectedModel"></b></p>
JS フィドル: http://jsfiddle.net/apuchkov/n4VyD/