У меня есть массив Knockout, который я привязываю к HTML, как показано ниже
<tbody data-bind="foreach: perEntityPartnerPrices">
<tr>
<td>
<input data-bind="numericValue: centralServiceFee" class="integer" />
</td>
</tr>
</tbody>
Итак, у меня есть массив с именем perEntityPartnerPrices, внутри которого я помещаю другую модель с наблюдаемой с именем centralServiceFee.
У меня есть подписка на centralServiceFee, которую я использую для обновления другого значения верхнего уровня в основной виртуальной машине
this.centralServiceFee.subscribe(function (value) {
if (value == null || value == undefined) {
self.centralServiceFee(0);
}
if (parentPartnerPricingVM.partnerPricingPerEntityExists) {
parentPartnerPricingVM.updateCentralServiceFee();
}
});
Теперь проблема заключается в том, что на основе изменения в одном centralServiceFee
я должен обновить то же свойство в centralServiceFee of the perEntityPartnerPrices array
, что снова вызывает функцию подписки несколько раз.
Таким образом, вопрос заключается в том, как я могу молча изменить одно и то же значение свойства внутри массива Knockout, не вызывая подписку в цикле, а также когда я изменяю свойство с помощью приведенного ниже кода, оно не обновляется в пользовательском интерфейсе, который я не знаю, почему поскольку centralServiceFee является наблюдаемым.
if (parentPartnerPricingVM.partnerPricingPerEntityExists) {
for (var i = 0; i < parentPartnerPricingVM.perEntityPartnerPrices.length; i++) {
if (i >= 1) {
parentPartnerPricingVM.perEntityPartnerPrices[i].centralServiceFee(67);
}
}
}
Спасибо