查找嵌套的foreach索引号

时间:2014-12-10 11:52:17

标签: knockout.js binding

我试图在嵌套的foreach中找到索引号。例如,我试图这样做:

<!-- ko foreach:array1 -->
    <!-- ko foreach:array2 -->(this index)
        <!-- ko foreach:array3 -->
            <!-- ko foreach:array4 -->
                ----( i want index of foreach array2 in here...)
            <!-- /ko -->
        <!-- /ko -->
    <!-- /ko -->
<!-- /ko -->     

我尝试使用$parentContext.$index(),我能够找到1级嵌套foreach的数组索引,但不超过1级。

请帮我找到上述方案的正确绑定上下文。

2 个答案:

答案 0 :(得分:5)

除了wayne ellery回答,如果您想详细了解/比较事情,请查看此内容。

检查here是否有工作小提琴

查看:

<div class="loop" data-bind="foreach: rows">
    <br/>
    <div class="nested-loop" data-bind="foreach: cells">
         <br/>
        <div class="nested-nested-loop" data-bind="foreach: candidates"> 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>
 <br/>
        </div>
    </div>
</div>

这将真正帮助你更好地理解事情,确实帮助了我一次

答案 1 :(得分:1)

如上所述,您可以使用$parentContext.$parentContext.$index()

<!-- ko foreach:array1 -->
    <!-- ko foreach:array2 -->
        <!-- ko foreach:array3 -->
            <!-- ko foreach:array4 -->
                <!-- ko text: $parentContext.$parentContext.$index() --><!-- /ko -->
            <!-- /ko -->
        <!-- /ko -->
    <!-- /ko -->
<!-- /ko -->    

http://jsfiddle.net/9k8a7cx2/