Di knockout.js 2.1.0, dalam templat yang menggunakan foreach binding, Anda dapat mengakses indeks item saat ini melalui fungsi $ index (). Dalam pengikatan foreach bersarang, apakah ada cara untuk mengakses indeks $ parent dari template?
Katakanlah saya memiliki struktur data seperti ini:
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
},
...
]};
Dengan ini, saya ingin mencetak jalur ke setiap model, menggunakan indeks: [topModel-index subModel-index], sehingga hasilnya akan seperti ini:
[0 0]
[0 1]
[1 0]
[2 0]
[2 1]
...
Saya telah mengikat model menggunakan foreach, tetapi saya tidak tahu cara mengakses indeks topModel dalam konteks subModel. Contoh berikut menunjukkan pendekatan yang telah saya coba, tetapi tidak berhasil, karena saya tidak tahu cara mengakses indeks $ parent referrer.
<!--ko foreach: topModel -->
<!--ko foreach: subModel -->
[<span data-bind="text: $parent.index()"></span>
<span data-bind="text: $index()"></span>]
<!--/ko-->
<!--/ko-->
Harus mencetak: 0 1, 0 2, 1 0, 1 1, 1 2, 2 0, 2 1, ...
()
setelah$index
itu.