Наблюдаемое обновление не отражается в интерфейсе пользователя в нокауте - PullRequest
0 голосов
/ 17 мая 2019

у меня ниже 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 Ответ

0 голосов
/ 17 мая 2019

centralServiceFee является наблюдаемым , поэтому вы должны update это так:

parentPartnerPricingVM.perEntityPartnerPrices[i].centralServiceFee(7)

...