2013-11-29 5 views
0

Ситуация: адрес должен быть введен пользователем, запись запрашивает базу данных и содержит предложения. Выбирает существующее значение - устанавливает существующий идентификатор. Новое значение - 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()]); 
} 
+0

И возникает вопрос ?! – psxls

ответ

1

Сделать self.buildingid() вместо self.buildingid внутри вычисленной

Смежные вопросы