35

foreachバインディングコンテキストを使用して、代替行のcssクラスをノックアウトテンプレートに適用するのに問題があります。$index使用可能なコンテキスト変数でノックアウト2.1を使用しています。

これは紛らわしいことです:

私のテンプレート

<li class="row" data-bind="css: { alt: $index%2 }"></li>

altただし、クラスは適用されません。

<li class="row" data-bind="text: $index"></li>

正しく動作し、行番号を表示します。

4

2 に答える 2

71

私はこれに数分間苦労しましたが、ノックアウト2.1で新しいバインディングコンテキスト変数(のような$index)が導入されたため、この質問は実際にはカバーされていなかったことがわかりました

私が犯した間違いは、$indexそれ自体が監視可能であることを単に忘れていたため、data-bind属性の式で使用する場合はラップを解除する必要があるということでした。すなわち、

<li class="row" data-bind="css: { alt: $index%2 }"></li>

になる必要があります

<li class="row" data-bind="css: { alt: $index()%2 }"></li>

うわー:)

于 2012-06-27T16:48:42.623 に答える
12

Javascriptで行のスタイルを変更するのではなく、CSSを使用してください。これははるかに効率的です:)

https://developer.mozilla.org/en-US/docs/CSS/:nth-child

于 2013-03-02T23:39:36.323 に答える