knockout.js verwendet $ index mit if bind


82

Ich versuche, ein Markup basierend auf dem Wert von $indexanzuzeigen. Ich kann den Wert anzeigen, aber ich kann ihn scheinbar nicht mit einer ifBindung verwenden. Was ist hier der beste Ansatz?

<!-- ko if: $index===0 -->
  <div>some mark up here</div>
<!-- /ko -->

Antworten:


152

$ index ist ein Observable und Observables sind Funktionen. Wenn Sie Observablen in einem Ausdruck verwenden, müssen Sie das Formular () verwenden, um auf den Wert zuzugreifen.

<!-- ko if: $index() === 0 -->

15

Von der Seite mit den Knockout-Bindungen

$ index (nur innerhalb von foreach-Bindungen verfügbar)

Dies ist der auf Null basierende Index des aktuellen Array-Eintrags, der von einer foreach-Bindung gerendert wird. Im Gegensatz zu den anderen Bindungskontexteigenschaften ist $ index beobachtbar und wird aktualisiert, wenn sich der Index des Elements ändert (z. B. wenn Elemente zum Array hinzugefügt oder daraus entfernt werden).

Beispiel

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

Ergebnisse in

Model #: UAI5021 | Catalog #: UIOY786
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.