ใน knockout.js 2.1.0 ในเทมเพลตที่ใช้การผูก foreach คุณสามารถเข้าถึงดัชนีของรายการปัจจุบันผ่านฟังก์ชัน $ index () ในการผูก foreach แบบซ้อนมีวิธีใดในการเข้าถึงดัชนีของ $ parent จากเทมเพลตหรือไม่?
สมมติว่าฉันมีโครงสร้างข้อมูลดังนี้:
var application = {
topModel: [
{
{subModel: [{'foo':'foo'}, { 'bar':'bar'}]}, // this has top:0 and sub:0
{subModel: [{'foo2':'foo2'}, { 'bar2':'bar2'}]} // this has top:0 and sub:1
},
{
{subModel: [{'foo':'foo'}, { 'bar':'bar'}]} // this is top:1 sub:0
},
{
{subModel: [{'foo':'foo'}, { 'bar':'bar'}]} // this is top:2 sub:0
{subModel: [{'foo':'foo'}, { 'bar':'bar'}]} // this is top:2 sub:1
},
...
]};
ด้วยสิ่งนี้ฉันต้องการพิมพ์เส้นทางไปยังแต่ละโมเดลโดยใช้ดัชนี: [topModel-index subModel-index] ดังนั้นผลลัพธ์จะเป็นดังนี้:
[0 0]
[0 1]
[1 0]
[2 0]
[2 1]
...
ฉันได้ผูกโมเดลโดยใช้ foreach แต่ฉันไม่สามารถหาวิธีเข้าถึงดัชนีของ topModel ในบริบทของโมเดลย่อยได้ ตัวอย่างต่อไปนี้แสดงวิธีที่ฉันได้ลองใช้ แต่ไม่ได้ผลเนื่องจากฉันไม่สามารถหาวิธีเข้าถึงดัชนีของผู้อ้างอิง $ parent
<!--ko foreach: topModel -->
<!--ko foreach: subModel -->
[<span data-bind="text: $parent.index()"></span>
<span data-bind="text: $index()"></span>]
<!--/ko-->
<!--/ko-->
ควรพิมพ์: 0 1, 0 2, 1 0, 1 1, 1 2, 2 0, 2 1, ...
()
นั้นจริง ๆหลังจาก$index
นั้น