带有$ index绑定的备用行样式

时间:2012-06-27 16:48:42

标签: javascript knockout.js knockout-2.0

我无法使用foreach绑定上下文将替代行css类应用于挖空模板。我正在使用具有可用$index上下文变量的knockout 2.1。

这是令人困惑的:

我的模板

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

导致没有应用alt个类,但是:

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

正常工作并显示行号。

2 个答案:

答案 0 :(得分:71)

我挣扎了几分钟,发现这个问题并没有真正涵盖,因为新的binding context variables(如$index)已经在淘汰2.1中引入

我犯的错误是我忘记了$index本身是一个可观察的,如果我们在data-bind属性中的表达式中使用它,则必须将其解包。即,

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

应该成为

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

woops:)

答案 1 :(得分:12)

不要使用Javascript替代行样式,使用更有效的CSS:)

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