Невозможно сохранить значение модели, если элемент добавлен в выделенный наблюдаемый массив
{model : {"firstName":"David","lastName":"Bawa","state":"AL"}}
{"allStates":[{"id":1,"value":"AL","text":"ALABAMA"},{"id":2,"value":"AK","text":"ALASKA"}}
<select name="state" data-bind="options: allStates,optionsValue : 'value', optionsText: 'text' ,value: model.state,optionsCaption: 'Choose...'" id="ddlState"></select>
var registrationModel = {
staticData: function () {
var self = this;
self.allStates = ko.observableArray();
self.hearUsAll = ko.observableArray();
registrationService.getAllStates().done(function (result) {
if (result != null) {
$.each(result.List, function (i, v) {
self.allStates.push(v);
});
}
});
}
}
и моя служба регистрации
var registrationService = {
getAllStates: function () {
return service.staticService.get('GetAllStates');
}}
и мой статический сервис
var service={
staticService: {
get: function (method) {
var results = store.fetch(method);
if (results) {
var dfd = new $.Deferred();
dfd.resolve(results);
return dfd.promise();
}
return $.ajax({
type: 'GET',
url: "http://xxxx/Service1.svc/" + method,
dataType: "json",
success: function (result) { if (result) { store.save(method,result) } }
}).promise();
}
состояния заполняются с сервера через ajax, все работает нормально, если я жду, когда будут получены все состояния, а затем применю привязки.
как вы можете видеть, я получаю предварительно выбранное значение состояния в модели. Но когда я не жду заполнения состояний и вызываю привязки, это не сработает. это меняет мою переменную состояния на ноль. Я получаю свою модель представления из плагина картирования.
Пожалуйста помоги.