Наблюдаемое обновление не отражается в интерфейсе пользователя в нокауте

У меня есть ниже HTML

<table style="margin: 0 auto; color: grey; empty-cells: show">
    <tbody data-bind="foreach: perEntityPartnerPrices">
        <tr data-bind="css: { even: $parentContext.$index() % 2 }">
            <td class="input-with-revert-button">
                <input data-bind="numericValue: centralServiceFee,enable:false" class="integer" />
                <button class="ui-button ui-corner-all ui-widget" data-bind="enable: false, css: { 'ui-state-disabled': (!centralServiceFeeReturnEnable()) }, attr: { 'title': centralServiceReturnText }, click: resetCentralServiceFee">
                    <span class="ui-icon ui-icon-arrowreturnthick-1-w"></span>
                </button>
            </td>
        </tr>      
    </tbody>
</table>  

Так что в основном я привязываюсь к массиву perEntityPartnerPrices и использую свойство centralServiceFee.

this.centralServiceFee = ko.observable();

Я обновляю значение centralServiceFee, как показано ниже

for (var i = 0; i < parentPartnerPricingVM.perEntityPartnerPrices.length; i++) {
                if (i >= 1) {
                    parentPartnerPricingVM.perEntityPartnerPrices[i].centralServiceFee._latestValue =                      7;
                }
            }     

Я вижу, что значение обновляется, поскольку у меня есть вычисленное значение, которое, как я вижу, обновляется, но в пользовательском интерфейсе оно все еще показывает старое значение. Может кто-нибудь, пожалуйста, скажите мне, что я делаю не так здесь.

Редактировать: просто примечание Я обновляю последнее значение напрямую, так как у меня есть функция подписки на centralServiceFee, и если я изменяю одно значение, которое изменяет другие, то подписка продолжает срабатывать.

Спасибо

Всего 1 ответ


centralServiceFee является наблюдаемым, поэтому вы должны update его следующим образом:

parentPartnerPricingVM.perEntityPartnerPrices[i].centralServiceFee(7)


Есть идеи?

10000