Javascript 使用$index绑定的替代行样式

Javascript 使用$index绑定的替代行样式,javascript,knockout.js,knockout-2.0,Javascript,Knockout.js,Knockout 2.0,我很难将备用行css类应用于具有foreach绑定上下文的淘汰模板。我正在使用knockout 2.1和可用的$index上下文变量 这就是令人困惑的地方: 我的模板 <li class="row" data-bind="css: { alt: $index%2 }"></li> 正常工作并显示行号。我花了几分钟的时间来解决这个问题,发现自从在淘汰赛2.1中引入新的(如$index)以来,这个问题还没有真正涉及到 我犯的错误是,我只是忘记了$index本身是一个可观察的

我很难将备用行css类应用于具有foreach绑定上下文的淘汰模板。我正在使用knockout 2.1和可用的
$index
上下文变量

这就是令人困惑的地方:

我的模板

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

正常工作并显示行号。

我花了几分钟的时间来解决这个问题,发现自从在淘汰赛2.1中引入新的(如
$index
)以来,这个问题还没有真正涉及到

我犯的错误是,我只是忘记了
$index
本身是一个可观察的,如果我们在数据绑定属性的表达式中使用它,则必须将其展开。即

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

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

  • woops:)

    不要用Javascript做其他行样式,使用CSS更有效:)


    刚要问,就找到了你的答案!谢谢:)这一次我差点发疯。这让我有一段时间很沮丧,谢谢你的帖子!我不知道索引是可观察的。虽然我同意你的观点,但如果你试图支持$index上下文变量本身就是一个可观察的变量。干杯:)这两个答案都有价值。根据上下文,使用其中一个或另一个有很多原因,在这里看到这两个选项很好,这使这个问题成为一个很好的资源。这正是堆栈溢出的工作原理。
    <li class="row" data-bind="css: { alt: $index()%2 }"></li>