【问题标题】:Adding index based conditional attribute in foreach loop [duplicate]在 foreach 循环中添加基于索引的条件属性
【发布时间】:2018-01-31 17:10:29
【问题描述】:

如果我这样做:

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

ID 是 0、1、2... 但如果我这样做:

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

ID 总是“选择”,我做错了什么?

这是淘汰赛 v3.4.2

【问题讨论】:

标签: knockout.js


【解决方案1】:

$index 实际上是一个 observable。在简单的绑定中,敲除会自动处理它。在更复杂的表达式中,它没有,您需要手动调用它:

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

它们都以'choice' 结束,因为$index>0 将始终计算为false,因为它将$index 可观察函数的文本表示与0 进行比较。此函数以f 和@ 开头987654328@ 是false

【讨论】:

  • 是的,这是有道理的,而且有效。但是我从来没有找到关于“简单”和“复杂”绑定的文档,总是有问题:(
  • @skobaljic 只需将 observable 本身以外的任何东西(根据您的第一个示例)视为“复杂”。
  • 我明白了,没有问题,但从未在文档中找到解释,这是我必须自己弄清楚的。有没有关于它的文档?有句话说:如果你只绑定 observable,那么你就不需要括号了吗?
猜你喜欢
  • 1970-01-01
  • 2021-08-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-24
  • 2021-07-20
  • 1970-01-01
  • 2021-02-25
相关资源
最近更新 更多