Ситуация: адрес должен быть введен пользователем, запись запрашивает базу данных и содержит предложения. Выбирает существующее значение - устанавливает существующий идентификатор. Новое значение - ID = 0. Если это новая запись, отображается дополнительная область выбора.knockout.js observableArray расчетное значение
Идентификатор установлен через select2, значение изменяется правильно. Вычисленное значение не всегда (всегда false).
<div data-bind="foreach: deliveryBuildings">
<div>
<input type="hidden" data-bind="value: buildingId, text: 'buildingName', select2: { minimumInputLength: 0, ajax: buildingAjax }" style="width: 200px; padding-top: 5px" />
<div data-bind="visible: newBuilding">
<input type="hidden" data-bind="value: regionId, select2: { minimumInputLength: 0, ajax: regionAjax }" style="width: 200px; padding-top: 5px" />
</div>
</div>
</div>
var DeliveryBuildingItem = function() {
var self = this;
self.buildingId = ko.observable();
self.newBuilding = ko.computed(function() {
return self.buildingId == '0' ? true : false;
}, self);
}
var ViewModel = function() {
var self = this;
this.deliveryBuildings = ko.observableArray([new DeliveryBuildingItem()]);
}
И возникает вопрос ?! – psxls