knockout.js używający $ index with if binding

82

Próbuję pokazać jakąś marżę na podstawie wartości $index, mogę wyświetlić wartość, ale nie mogę jej użyć z ifwiązaniem, jakie jest najlepsze podejście tutaj?

<!-- ko if: $index===0 -->
  <div>some mark up here</div>
<!-- /ko -->
user1255162
źródło

Odpowiedzi:

152

Indeks $ jest obserwowalny, a obserable to funkcje. Jeśli używasz obserwabli w wyrażeniu, musisz użyć formularza (), aby uzyskać dostęp do wartości.

<!-- ko if: $index() === 0 -->
John Earles
źródło
15

Ze strony z wiązaniami knockout

$ index (dostępne tylko w ramach foreach powiązań)

Jest to indeks liczony od zera bieżącego wpisu tablicy, który jest renderowany przez powiązanie foreach. W przeciwieństwie do innych właściwości kontekstu powiązania, indeks $ index jest obserwowalny i jest aktualizowany za każdym razem, gdy zmienia się indeks elementu (np. Gdy elementy są dodawane lub usuwane z tablicy).

Przykład

<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>

Prowadzi do

Model #: UAI5021 | Catalog #: UIOY786
JackMorrissey
źródło