在绑定中使用$ index时,Knockout不会计算表达式

rbo*_*man 14 knockout-2.0 knockout.js

为什么,当我尝试使用knockout.js使用$ index绑定一些文本时,我得到函数的代码而不是数字?

<tbody  data-bind="foreach: MyList">
  <tr>
    <td><span data-bind="text: $index + 1"></span></td>
  </tr>
</tbody>
Run Code Online (Sandbox Code Playgroud)

而不是获得1,2,3等,我得到这个:

在此输入图像描述

您可以通过上图中的最后一个字符看到我的零索引被添加到1.如果我从绑定中删除'+ 1',我得到0,1,2而不是函数.

我怎么告诉淘汰赛评估表达?我提交表单时遇到同样的问题.我的字符串字段作为函数而不是值提交.

Joh*_*les 32

$ index是一个可观察的,这是一个函数.尝试<span data-bind="text: $index() + 1"></span>

  • 在表达式中使用observable时,这是一个普遍的问题.如果您单独使用observable,绑定将单独接受observable,但是当您开始在表达式中包含observable时,您必须使用()表单来访问实际值.请参阅http://knockoutjs.com/documentation/observables.html以了解"阅读和编写可观察的内容". (2认同)