web-dev-qa-db-ja.com

Knockout foreachバインディングで$ index + 1

テーブルに_$index+1_を表示する必要があります。

_$index_を使用する場合は、すべての要素が0から開始するため、1から開始する必要があります。

ノックアウトのドキュメントは次のとおりです。 http://knockoutjs.com/documentation/foreach-binding.html

そこにこの例を見つけることができます:

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

したがって、次のように表示されます。

位置0の名前:バート削除

位置1の名前:Charles Remove

位置2の名前:Denise Remove

表示目的のためだけにこれが本当に必要です。

位置1の名前:Bert Remove

位置2の名前:Charles Remove

3位の名前:Denise Remove

成功せずにこれを試しました<span data-bind="text: ($index + 1)"> </span>

50
Sanchitos

$ indexは観測可能です。したがって、このように使用する必要があります。

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

私はここで答えを見つけました: ノックアウトはバインディングで$ indexを使用するときに式を評価していません

使用するには<span data-bind="text: $index() + 1"></span>

1
Sanchitos