ifバインディングで$ indexを使用するknockout.js


82

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

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

回答:


152

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

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

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
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.