将KnockoutJS特殊属性与计算函数组合在一起

时间:2014-08-10 20:38:21

标签: knockout.js

我使用foreach数据绑定绑定模板。在模板$ index中返回一个值。另外,我写的ko.computed函数返回一个数字(数组的长度-1)。这两个数字似乎都是有效的,但是当我检查它们是否相等时,它总是返回false。

计算函数代码:

this.lastIndex = ko.computed(function () {
    return parent ? parent.whereClauses().length - 1 : 0;
});

显示结果的代码:

<div>
   <pre data-bind="text: ko.toJSON($index, null, 2)"></pre>
   <pre data-bind="text: ko.toJSON(lastIndex, null, 2)"></pre>
   <pre data-bind="text: ko.toJSON($index != lastIndex, null, 2)"></pre>
</div>

输出:

<div>
   <pre data-bind="text: ko.toJSON($index, null, 2)">1</pre>
   <pre data-bind="text: ko.toJSON(lastIndex, null, 2)">1</pre>
  <pre data-bind="text: ko.toJSON($index === lastIndex, null, 2)">false</pre>
</div>

1 个答案:

答案 0 :(得分:0)

您需要调用函数:

<div>
   <pre data-bind="text: ko.toJSON($index(), null, 2)"></pre>
   <pre data-bind="text: ko.toJSON(lastIndex(), null, 2)"></pre>
   <pre data-bind="text: ko.toJSON($index() != lastIndex(), null, 2)"></pre>
</div>

或者您正在比较函数引用。