2013-03-20 15 views
5

I nie wydają się uzyskać moja głowa wokół tego małego problemu:ng-show dla konkretnego elementu w NG-repeat

<ul ng-repeat="parent in parents"> 
    <li>Mother: <i>{{parent.mother}}</i></li> 
    <li>Father: <i>{{parent.father}}</i></li> 
    <a href="#" ng-click="showKids()">Show Kids</a> 
    <ul ng-repeat="kid in parent.kids" ng-show="active"> 
    <li>{{kid.name}}</li> 
    </ul> 
</ul> 

http://jsfiddle.net/twSFK/5/

Po kliknięciu "Pokaż dziećmi", i tylko chcesz pokazać dzieciom rodziców, gdzie kliknąłem, ale nie innym. Więc potrzebowałbym jakiegoś indeksu dla modelu, którego używam w programie ng-show, by kierować tylko na określony element.

Ponieważ $ scope.parents pochodzi z serwera zaplecza i jest załadowany z ng-init, nie wiem, w jaki sposób mogę uzyskać do niego dostęp, aby dodać "aktywny" -element zanim sterownik napisze listę.

Odpowiedz

10

Można ustawić indeks iteratorem ng-repeat="parent in parents" i używać go do gry z dwóch funkcji: showKids(index) oznaczać będzie co aukcja rodzic powinien iść jako aktywny po kliknięciu na dzieci wystawianie i isShowing(index), aby wiedzieć, co dzieci ci sublisting powinny wyświetlacz z ng-show

przepisałem kod według moich pomysłów tutaj http://jsfiddle.net/odiseo/twSFK/7/

+0

Wygląda dobrze, dzięki! –

+0

Ze względu na kompletność - dostosowałem wersję i teraz jest to dokładnie to, czego chciałem: http://jsfiddle.net/twSFK/12/ Przełącz dzieci niezależnie od siebie, naprzemiennie pokaż/ukryj - linki w zależności od statusu pokazu –

Powiązane problemy