Problem występuje wtedy, gdy wybrane opcje zostały zmienione, wartość nie jest aktualizowana.Knockoutjs nie aktualizuje wartości, gdy zmieniono wybrane opcje.
Kiedy więc zmieniam Hondę na Toyotę, opcje w drugim wyborze uległy zmianie, ale wybrano ModelMozelable not not. Musiałem coś przeoczyć.
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 Fiddle: http://jsfiddle.net/apuchkov/n4VyD/
Robi dziwne po zmianie zrobić, to zmienić z powrotem. W tym momencie patrzy na poprzednią wartość modeli. –
Znam ten stary post. Problem został rozwiązany w najnowszej wersji knockoutjs (3.2.0) [JSFiddle] (http://jsfiddle.net/n4VyD/93/) – pravin