6

問題は、選択オプションが変更されたときに値が更新されないことです。

そのため、ホンダをトヨタに変更すると、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/

4

2 に答える 2