我有一个Knockout数组,如下所示,它绑定到HTML
<tbody data-bind="foreach: perEntityPartnerPrices">
<tr>
<td>
<input data-bind="numericValue: centralServiceFee" class="integer" />
</td>
</tr>
</tbody>
因此,我有一个名为perEntityPartnerPrices的数组,在其中将另一个带有可观察到的名为centralServiceFee的模型推入其中。
我在centralServiceFee上有一个订阅,用于更新主VM中的另一个顶级值
this.centralServiceFee.subscribe(function (value) {
if (value == null || value == undefined) {
self.centralServiceFee(0);
}
if (parentPartnerPricingVM.partnerPricingPerEntityExists) {
parentPartnerPricingVM.updateCentralServiceFee();
}
});
现在的问题是,基于一个centralServiceFee
的更改,我必须更新centralServiceFee of the perEntityPartnerPrices array
中的相同属性,这又会反复触发订阅功能。
所以问题是我如何在不循环调用subscribe的同时静默地在Knockout数组中更改相同的属性值,并且当我使用以下代码更改属性时,它在UI中没有更新,我不知道为什么因为centralServiceFee是可观察的。
if (parentPartnerPricingVM.partnerPricingPerEntityExists) {
for (var i = 0; i < parentPartnerPricingVM.perEntityPartnerPrices.length; i++) {
if (i >= 1) {
parentPartnerPricingVM.perEntityPartnerPrices[i].centralServiceFee(67);
}
}
}
谢谢