如何在嵌套循环中访问grand parent的索引?
例如:
<div class="loop" data-bind="foreach: rows">
<div class="nested-loop" data-bind="foreach: cells">
<div class ="nested-nested-loop" data-bind="foreach: candidates, css : {selected : $root.isSelected($parentContext.$parentContext.$index(), $parentContext.$index(), $index())}">
Candidate index: <span data-bind="text: $index()"></span>
Cell index: <span data-bind="text: $parentContext.$index()"></span>
Row index: <span data-bind="text: $parentContext.$parentContext.$index()"></span>
</div>
</div>
</div>
我试图像这样绑定:
css : {selected : $root.isSelected($parentContext.$parentContext.$index(), $parentContext.$index(), $index())}
我遇到了:
TypeError:
$parentContext.$parentContext.$index
不是函数
答案 0 :(得分:18)
如果要显示祖母的索引,则需要$parentContext
的{{1}},因此您需要写:
$parentContext
它在Row index: <span data-bind="text: $parentContext.$parentContext.$index()"></span>
绑定中不起作用,因为您在与css
相同的元素上绑定,因此绑定上下文未正确设置。
您可以通过在不同元素上移动foreach
和foearch
来解决此问题,例如使用无包含绑定系统:
css
演示JSFiddle。