84

の値に基づいてマークアップを表示しようとしています。値を表示できますが、バインディングで$index使用できないようです。ここでの最良のアプローチは何ですか?if

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

2 に答える 2

155

$ indexはオブザーバブルであり、オブザーバブルは関数です。式でオブザーバブルを使用する場合は、()形式を使用して値にアクセスする必要があります。

<!-- ko if: $index() === 0 -->
于 2012-07-03T20:30:30.297 に答える
15

ノックアウトバインディングページから

$ index(foreachバインディング内でのみ使用可能)

これは、foreachバインディングによってレンダリングされている現在の配列エントリのゼロベースのインデックスです。他のバインディングコンテキストプロパティとは異なり、$ indexは監視可能であり、アイテムのインデックスが変更されるたびに更新されます(たとえば、アイテムが配列に追加されたり、配列から削除されたりした場合)。

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

結果は

Model #: UAI5021 | Catalog #: UIOY786
于 2013-02-15T15:36:30.210 に答える