在foreach循环中添加基于索引的条件属性

时间:2017-08-23 08:10:51

标签: knockout.js

如果我这样做:

data-bind="attr: {'id': $index}"

比ID为0,1,2 ......但如果我这样做:

data-bind="attr: {'id': $index>0 ? 'choice'+$index : 'choice'}"
比ID总是'选择',我做错了什么?

是Knockout v3.4.2

1 个答案:

答案 0 :(得分:2)

$index实际上是一个可观察的。在一个简单的绑定中,knockout会自动处理它。在更复杂的表达式中,它不需要手动调用它:

data-bind="attr: {'id': $index()>0 ? 'choice'+$index() : 'choice'}"

它们最终只有'choice',因为$index>0将始终评估为false,因为它将$index可观察函数的文本表示与0进行比较。函数以f开头,"f" > 0false