W pliku knockout.js 2.1.0 w szablonie wykorzystującym powiązanie foreach można uzyskać dostęp do indeksu bieżącego elementu za pomocą funkcji $ index(). Czy w zagnieżdżonym powiązaniu foreach istnieje jakiś sposób uzyskania dostępu do indeksu elementu $ parent z szablonu?Indeks dostępu jednostki nadrzędnej w knockout.js
że mam struktury danych tak:
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
},
...
]};
Z tym, chcę wydrukować ścieżkę do każdego modelu, za pomocą wskaźników: [TOPMODEL-index submodel-index], tak że wyjście będzie coś takiego:
[0 0]
[0 1]
[1 0]
[2 0]
[2 1]
...
mam związany modeli używając foreach, ale nie mogę dowiedzieć się, jak uzyskać dostęp indeks tOPMODEL w kontekście podmodel. W poniższym przykładzie pokazano podejście, które próbowałem, ale to nie działa, ponieważ nie mogę dowiedzieć się, jak uzyskać dostęp do indeksu rodzic strony $.
<!--ko foreach: topModel -->
<!--ko foreach: subModel -->
[<span data-bind="text: $parent.index()"></span>
<span data-bind="text: $index()"></span>]
<!--/ko-->
<!--/ko-->
powinien wypisać: 0 1 0 2 1 0 1 1 1 2 2 0, 2 1, ...
W rzeczywistości nie potrzebujesz tego '()' po '$ index' tam. –
Również, jeśli mógłbyś stworzyć jsfiddle z tym, co masz, to by to ułatwiło. Możesz też opublikować źródło danych i wyświetlić kod modelu. –
Na razie pracuję tylko nad prototypowaniem, więc nie mam dużo więcej niż podany przykład. Jestem jednak otwarty na sugestie wykorzystujące inne podejścia. –