如果我們有3個嵌套的foreach,如何獲得內部foreach內的第二個foreach的$ index? $ index給了我們最內部foreach的計數器,$ parentContext給了我們最外層的foreach的計數器。中間的foreach呢?
0
A
回答
0
在這裏,你可以找到類似的問題,用的jsfiddle演示: Getting $index of grand parent in a nested loop
+0
非常感謝。這對我有效。我們可以使用$ parentContext。$ parentContext。$ index()。 – Lucifer
1
只要你喜歡你可以向上移動$parentContext
多次。所以:$index()
>$parentContext.$index()
>$parentContext.$parentContext.$index()
...
下面的例子表明,
- 它的工作原理,並
- 它的醜陋而且容易出錯...
更好的解決方案是在實際項目中包含(計算)索引屬性。
ko.applyBindings({
items: [{
items: [{
items: [1, 2, 3]
},
{
items: [4, 5, 6]
}
]
},
{
items: [{
items: [7, 8, 9],
}, {
items: [0, 1]
}]
}
]
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.2.0/knockout-min.js"></script>
<ul data-bind="foreach: items">
<li>
<strong data-bind="text: $index()"></strong>
<ul data-bind="foreach: items">
<li>
<strong data-bind="text: [
$parentContext.$index(),
$index()].join('.')"></strong>
<ul data-bind="foreach: items">
<li>
<strong data-bind="text: [
$parentContext.$parentContext.$index(),
$parentContext.$index(),
$index()].join('.')"></strong>
</li>
</ul>
</li>
</ul>
</li>
</ul>
+0
$ parentContext。$ parentContxt。$ index()爲我工作。非常感謝。我認爲$ parentContext給你最外面的foreach上下文是錯誤的。它給你一個外部foreach的背景。 – Lucifer
相關問題
- 1. 嵌套的foreach()
- 2. 嵌套的foreach
- 3. 如何在不使用foreach的情況下獲得詞典中嵌套列表的計數總和?
- 4. Knockoutjs foreach第三個嵌套級別不起作用
- 5. 如何找到的foreach倒數第二個索引號法
- 6. 二嵌套的foreach打印什麼
- 7. 如何獲取FOREACH迭代的索引
- 8. zk嵌套forEach
- 9. XSLT:帶有嵌套IF子句的foreach,如何獲得「第一個TRUE結果」?
- 10. 嵌套的foreach與switch語句未增加的情況下可變環
- 11. 嵌套的foreach用於自引用表
- 12. 在沒有'foreach'的情況下檢索Webmatrix中的數據
- 13. 帶嵌套鍵的嵌套foreach
- 14. 從嵌套的foreach獲取數據
- 15. 嵌套foreach循環
- 16. 嵌套ForEach列表
- 17. knockoutJS導致停止腳本錯誤嵌套的foreach
- 18. 嵌套的foreach到Linq
- 19. 嵌套的Foreach循環(PHP)
- 20. 在PHP中嵌套的foreach()
- 21. 嵌套的foreach問題
- 22. PHP/MySQL與嵌套的foreach
- 23. AngularJS $ http嵌套的foreach
- 24. 淘汰賽,嵌套的foreach
- 25. 嵌套℃的情況下++模板
- 26. 在不使用foreach的情況下獲取std類值
- 27. Knockoutjs模板foreach,特別第一項
- 28. 如何在不影響每一行的情況下進行foreach?
- 29. 如何在不使用forEach()的情況下使用HTML元素?
- 30. LINQ - 有沒有辦法在沒有ForEach的情況下獲得元素值?
父上下文應適用於這一點 - 你可以顯示它不是爲你工作的例子嗎? –
除了打開應該爲你工作的'parent',考慮在foreach綁定中使用'as'來爲你的元素賦予一個別名,比如'foreach:{data:people,as:'person'}'。內部foreach的可以通過名稱引用父元素,使得一切都更清晰,可以在深度嵌套時閱讀。在[knockout foreach page](http://knockoutjs.com/documentation/foreach-binding.html)中有一個很好的例子。 – JNevill