2016-07-15 24 views
0

Ich habe einen ng-repeat Code mit erweiterbaren Listenelementen. Ich möchte ein Element nach dem anderen erweitern.Ng-repeat und Direktive erweitern einen Listeneintrag gleichzeitig

Die Art, wie ich es zu tun versuche, ist in der HTML-Datei

<div data-ng-repeat="parts in data track by $index"> 
    <li id="titleHelp" ng-click='setItem($index);"> 

und in der Richtlinie in der setItem Funktion mag ich das vorher erweiterten Artikel kollabieren und die neuen zu erweitern. Ist es möglich, mit einem Index auf ein Wiederholungselement in der Direktive zuzugreifen?

danke!

Antwort

1

Wie erweitern Sie das Listenelement derzeit? Was ich tun würde, gesetzt ist eine Variable, sobald ein Element geklickt wird und in Ihrer wiederholt Liste tun, um ein

<div data-ng-repeat="parts in data track by $index"> 
    <li id="titleHelp" ng-click='setItem($index);"> 
    <div ng-show="$index = selected_item"> <!-- contents --></div> 

In Ihrer setItem Funktion:

$scope.setItem = function(i) { 
    $scope.selected_item = i; 
} 
1

Deklarieren Sie ein Objekt

$scope.obj={selected:null}; 

Danach fügen Sie eine Methode in der ng wiederholen,

$scope.isHide = function (id) { 

          if (id == $scope.obj.selected) 
           return $scope.obj.selected = "all"; 

          return $scope.obj.selected = id; 
         } 

Wenn Sie div verbergen möchten, rufen Sie diese Methode mit der ID auf. Tun Sie dasselbe für den li, wenn Sie brauchen.