web-dev-qa-db-fra.com

$ index + 1 in Knockout foreach binding

J'ai besoin d'afficher $index+1 Dans un tableau.

Si j'utilise simplement le $index Tous les éléments commenceront à 0, je dois commencer à 1.

Voici la documentation de knockout: http://knockoutjs.com/documentation/foreach-binding.html

Vous y trouverez cet exemple:

<h4>People</h4>
<ul data-bind="foreach: people">
    <li>
        Name at position <span data-bind="text: $index"> </span>:
        <span data-bind="text: name"> </span>
        <a href="#" data-bind="click: $parent.removePerson">Remove</a>
    </li>
</ul>
<button data-bind="click: addPerson">Add</button>

Il affichera donc les éléments suivants:

Gens

Nom à la position 0: Bert Remove

Nom à la position 1: Charles Remove

Nom à la position 2: Denise Remove

J'ai vraiment besoin que ce soit juste à des fins d'affichage.

Nom à la position 1: Bert Remove

Nom à la position 2: Charles Remove

Nom à la position 3: Denise Remove

J'ai essayé sans succès <span data-bind="text: ($index + 1)"> </span>

50
Sanchitos

$ index est un observable. Vous devez donc l'utiliser de cette façon:

<span data-bind="text: ($index() + 1)"> </span>
125
Damien

J'ai trouvé la réponse ici: Knockout n'évalue pas une expression lors de l'utilisation de $ index dans une liaison

Pour l'utiliser <span data-bind="text: $index() + 1"></span>

1
Sanchitos