Правильное значение не отображается с привязкой к нокауту js

У меня есть таблица с кнопкой оплаты, которая будет отображаться только в том случае, если счет выставлен больше, чем оплачено, но по какой-то причине он работает только тогда, когда счет равен сумме оплаченного, но если есть платеж, который частично оплачен этой кнопкой PAY. не работает.
Вот код

<tbody data-bind="foreach: invoicedatasintable">
<tr>
<td class="text-right"><span data-bind="text: $data.invoiced_total"></span></td>
<td class="text-right"><span data-bind="text: $data.paid_total "></span></td>
<td class="text-center"><span data-bind="text: $data.Abbreviation"></span></td>
<td><a href="#" data-bind="click: $root.getSelectedInvoice"><span data-bind="text: $data.rf_reference"></span></a></td>
<!-- <td><span data-bind="text: $data.rf_reference"></span></td> -->
<td><span data-bind="text: $data.type_txt"></span></td>
<td><span data-bind="text: $data.status_description"></span></td>
<td class="text-center">
<a href="#" data-bind="if: $data.invoiced_total() > $data.paid_total(), click: $root.getRepaymentInvoice"><?php echo lang("invoice_table_pay1"); ?></a>
<span data-bind="ifnot: $data.invoiced_total() > $data.paid_total()"><?php echo lang("invoice_table_pay1"); ?></span>
</td>
</tr>
</tbody>

Вот картина что покажет вам, что я имею в виду, частично оплаченные должны также иметь возможность платить.

0

Решение

Скорее всего, две сравниваемые переменные являются строковыми значениями.

«212.10»> «60.60» — ложь, но 212.10> 60.60 — правда … так что это может решить вашу проблему (преобразование в float перед сравнением)

<td class="text-center">
<a href="#" data-bind="if: parseFloat($data.invoiced_total()) > parseFloat($data.paid_total()), click: $root.getRepaymentInvoice"><?php echo lang("invoice_table_pay1"); ?></a>
<span data-bind="ifnot: parseFloat($data.invoiced_total()) > parseFloat($data.paid_total())"><?php echo lang("invoice_table_pay1"); ?></span>
</td>
1

Другие решения

Я бы рекомендовал вместо этого использовать кнопку, поскольку цель более ясна, как ее включение / отключение / стилизация:

<tbody data-bind="foreach: invoicedatasintable">
<tr>
<td class="text-right"><span data-bind="text: $data.invoiced_total"></span></td>
<td class="text-right"><span data-bind="text: $data.paid_total "></span></td>
<td class="text-center"><span data-bind="text: $data.Abbreviation"></span></td>
<td><a href="#" data-bind="click: $root.getSelectedInvoice"><span data-bind="text: $data.rf_reference"></span></a></td>
<!-- <td><span data-bind="text: $data.rf_reference"></span></td> -->
<td><span data-bind="text: $data.type_txt"></span></td>
<td><span data-bind="text: $data.status_description"></span></td>
<td class="text-center">
<button data-bind="enable: $data.invoiced_total() > $data.paid_total(), click: $root.getRepaymentInvoice">pay</button>
</td>
</tr>
</tbody>
0

По вопросам рекламы [email protected]