Я новичок в knockoutjs и создании проекта. В этом случае я обновляю форму, в которой вы выбираете состояние, из которого stateId будет извлекать список городов, cityId извлекает zipcodes и так далее. Для начального массива у меня есть предварительная выборка перед вызовом модели, но при обновлении состояния все города должны быть пустыми и перезаправлены в соответствии с выбранным идентификатором состояния и т. Д. My SelectedCityAction не обновляется при выборе состояния. Может ли кто-нибудь помочь мне?Knockoutjs-Создание зависимого выпадающего списка при обновлении записи Zend
EditUserAddressModel = function(statesJson, citiesJson , zipcodeJson, Addressdata) {
var self = this;
self.selectedStateAction = ko.observable(Addressdata.state_id);
self.selectedCityAction = ko.observable(Addressdata.city_id);
self.selectedZipAction= ko.observable(Addressdata.zipcode_id);
self.statesArray = ko.observableArray($.parseJSON(statesJson));
self.citiesArray = ko.observableArray($.parseJSON(citiesJson));
self.zipcodeArray = ko.observableArray($.parseJSON(zipcodeJson));
self.selectedStateAction.subscribe(function(newStateValue) {
self.state_id = newStateValue;
self.selectedCityAction = undefined;
self.citiesArray = ko.observableArray();
$.ajax({
url: '/profile/getcities?mode=edit&state_id='+self.state_id,
type: 'get',
dataType: 'html',
data: {},
success: function(data) {
self.citiesArray = ko.observableArray($.parseJSON(data));
}
})
});
}
var edit_address_form = document.getElementById("edit-address-form");
ko.applyBindings(new EditUserAddressModel(resp1[0], resp2[0], resp3[0], Addressdata), edit_address_form);
TPL Код:
<select class="form-control custom-form-control" data_from="edit_city" data-bind="options: $root.statesArray, optionsText: 'state_name', optionsValue: 'state_id', value: selectedStateAction, optionsCaption: 'Select State'"></select>
<select class="form-control custom-form-control" data_from="edit_zip" id="edit_city" data-bind="options: citiesArray, optionsText: 'city_name', optionsValue: 'city_id', value: selectedCityAction, optionsCaption: 'Select City'"></select>
<select class="form-control custom-form-control select_zip" id="edit_zip" data-bind="options: $root.zipcodeArray, optionsText: 'zip', optionsValue: 'zipcode_id', value: selectedZipAction, optionsCaption: 'Select Zip'"></select>