knockout.js с использованием $ index с привязкой if

82

Я пытаюсь показать разметку на основе значения $index, я могу отображать значение, но не могу использовать его с ifпривязкой, какой здесь лучший подход?

<!-- ko if: $index===0 -->
  <div>some mark up here</div>
<!-- /ko -->
user1255162
источник

Ответы:

152

$ index - это наблюдаемое, а наблюдаемые - это функции. Когда вы используете наблюдаемые в выражении, вы должны использовать форму () для доступа к значению.

<!-- ko if: $index() === 0 -->
Джон Эрлз
источник
15

Со страницы привязок к выбиванию

$ index (доступно только в привязках foreach)

Это отсчитываемый от нуля индекс текущей записи массива, отображаемой привязкой foreach. В отличие от других свойств контекста привязки, $ index является наблюдаемым и обновляется всякий раз, когда индекс элемента изменяется (например, если элементы добавляются в массив или удаляются из него).

пример

<div data-bind="foreach: details.additionalDetails">
    <!-- ko if: $index() !== 0 -->
        <span> | </span>
     <!-- /ko -->
        <span data-bind="text: name"></span> <span data-bind="text: value"></span>
</div>

Результаты в

Model #: UAI5021 | Catalog #: UIOY786
Джек Моррисси
источник