我有这段代码(最新的ko版本):
<tbody>
<!-- ko foreach: searchResults-->
<tr>
<td><span class="capbType" data-bind="text: type"></span> (<span data-bind="text: data.length"></span>)</td>
<td class="capbEntities">
<!-- ko foreach: data -->
<p data-bind="text: name"></p>
//THIS IS NOT RENDERING
<!-- ko if: $index == 3 -->
<span class="capbShowMore capbIcon capbIconExpand" data-bind="visible: data.length > 3,click: $root.toggleShow"><span data-bind="text: data.length - 3"></span> More</span>
<!-- /ko -->
<!-- /ko -->
</td>
<td class="capbMoreInfo">
<!-- ko foreach: data -->
<p data-bind="text: strategyName"></p>
<!--/ko-->
</td>
</tr>
<!--/ko-->
</tbody>
我只想在索引为capbShowMore
时呈现3
元素,但出于某种原因,除了capbShowMore
元素之外,所有内容都会呈现,所以我得到了这个:
<td class="capbEntities">
<!-- ko foreach: data -->
<p data-bind="text: name">FY13 SPM Strategy</p>
<!-- ko if:$index == 3 --><!-- /ko -->
<p data-bind="text: name">FY13 SPM Strategy</p>
<!-- ko if: $index == 3 --><!-- /ko -->
<p data-bind="text: name">FY11 Corporate Strategy</p>
<!-- ko if: $index == 3 --><!-- /ko -->
<p data-bind="text: name" style="display: none;">Service & Portfolio Management</p>
<!-- ko if: $index == 3 --><!-- /ko -->
<p data-bind="text: name" style="display: none;">Strategy1</p>
<!-- ko if: $index == 3 --><!-- /ko -->
<p data-bind="text: name" style="display: none;">Strategy1</p>
<!-- ko if: $index == 3 --><!-- /ko -->
<p data-bind="text: name" style="display: none;">Update Admin Users - default</p>
<!-- ko if: $data.$index == 3 --><!-- /ko -->
<p data-bind="text: name" style="display: none;">Update Admin Users - Duplicates</p>
<!-- ko if: $index == 3 --><!-- /ko -->
<p data-bind="text: name" style="display: none;">Update Admin Users - Assignee is NULL</p>
<!-- ko if: $index == 3 --><!-- /ko -->
<!-- /ko -->
</td>
我做错了什么?
答案 0 :(得分:3)
与其他绑定上下文属性不同,
$index
是可观察。
因此,如果您在表达式中使用它,则需要输出()
以获取其值。
所以以下内容应该有效:
<!-- ko if: $index() == 3 -->
<!-- /ko -->