6

ノックアウト 2.2.0.js を使用しています。observableArray に foreach ループ バインディングを作成しました。配列の最初の要素のみを表示したいと考えています。このために私は試しました:(両方とも機能しません)

初め

        <!-- ko foreach: myArray -->
          <span data-bind="text: $data, visible: $index == 0"></span>
        <!-- /ko -->

2番

        <span data-bind="text: myArray[0]"></span>       

_destroyその要素よりも任意の配列要素に設定すると、UI の foreach ループ バインディングから除外されるプロパティがあることを私は知っています。しかし、私の場合はこれを使用したくありません。ここで私が間違っていることを教えてください。

4

1 に答える 1

15

あなたは正しい軌道に乗っています。()しかし、両方の例にを入れるのを忘れています。

myArray観察可能な配列で$indexあり、観察可能であるため、それらは関数であるため、()式内で値を取得するには、関数として呼び出す必要があります。

したがって、正しいバインディングは次のとおりです。

<!-- ko foreach: myArray -->
    <span data-bind="text: $data, visible: $index() == 0"></span>
<!-- /ko -->

<span data-bind="text: myArray()[0]"></span>  

JSFiddleのデモ。

注: 本当に最初の項目だけを表示したい場合は、text: myArray()[0]バージョンを優先する必要があります。これは、実行しようとしている内容がより明確になるためです。

于 2013-03-02T08:27:32.673 に答える