2013-07-18 12 views
49

Potrzebuję wyświetlić $index+1 w tabeli.

Gdybym tylko użyć $index wszystkie elementy rozpocznie się od 0, muszę zacząć od 1.

Oto dokumentacja nokaut: http://knockoutjs.com/documentation/foreach-binding.html

Tam można znaleźć ten przykład:

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

Tak będzie wyświetlać następujące:

People

Nazwa w pozycji 0: Bert Usuń

Name w pozycji 1: Charles Usuń

Nazwa w pozycji 2: Denise Usuń

naprawdę muszę to być właśnie dla celów wyświetlania .

Name w pozycji 1: Bert Usuń

Nazwa w pozycji 2: Charles Usuń

Nazwa w pozycji 3: Denise Usuń

Próbowałem to bezskutecznie <span data-bind="text: ($index + 1)"> </span>

+6

Spróbuj $ index() + 1 –

+0

możliwy duplikat [ Knockout nie dokonuje oceny wyrażenia podczas używania indeksu $ w powiązaniu] (http://stackoverflow.com/questions/11302338/knockout-is-not-evaluating-an-expression-when-using-index-in-a-binding) – nemesv

Odpowiedz

117

Indeks $ jest obserwowalny. Więc trzeba użyć go w ten sposób:

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