2016-07-29 19 views
0

Ich möchte eine Kategorie Hierarchiedaten zeigen, und ich verwende AngularJS mit ng-repeat und ng-if.Here in mein Demo-Datei:anzeigen Kategorie Hierarchie AngularJS

<div ng-app="" ng-controller="DanhMucController"> 
    <ul> 
     <li ng-repeat="danhmuc in DanhMucList" ng-if="danhmuc.depended==0">{{danhmuc.name}} 
     <ul> 
      <li ng-repeat="danhmuc in DanhMucList" ng-if="danhmuc.depended==2"> 
      {{danhmuc.name}} 
      <ul ng-repeat="danhmuc in DanhMucList" ng-if="danhmuc.depended==4"> 
       <li>{{danhmuc.name}}</li> 
      </ul> 
      </li> 
     </ul> 
     </li> 
    </ul> 
    </div> 

Controller:

<script> 
    function DanhMucController($scope, $http) { 
     var url = "category.txt"; 
     $http.get(url).success(function(response) { 
      $scope.DanhMucList = response; 
     }); 
    } 
</script> 

diese Datei Kategoriedaten:

[{ 
    "id": "1", 
    "name": "Parent1", 
    "depended": "0" 
}, { 
    "id": "2", 
    "name": "Parent2", 
    "depended": "0" 
}, { 
    "id": "3", 
    "name": "Parent3", 
    "depended": "0" 
}, { 
    "id": "4", 
    "name": "ChildA", 
    "depended": "1" 
}, { 
    "id": "5", 
    "name": "ChildB", 
    "depended": "2" 
}, { 
    "id": "6", 
    "name": "ChildC", 
    "depended": "3" 
}, { 
    "id": "7", 
    "name": "grandChildA", 
    "depended": "4" 
}, { 
    "id": "8", 
    "name": "grandChildB", 
    "depended": "5" 
}, { 
    "id": "9", 
    "name": "grandChildC", 
    "depended": "6" 
}, { 
    "id": "10", 
    "name": "grandChildD", 
    "depended": "5" 
}, { 
    "id": "11", 
    "name": "grandChildE", 
    "depended": "6" 
}, { 
    "id": "12", 
    "name": "grandChildF", 
    "depended": "3" 
}] 

category Image

Aber ich kann nicht die ID des übergeordneten definieren, damit es zeigen Daten nicht, die ich brauche .Es zeigen muss:

-Parent 1 Childa enthalten.

-Parent 2 enthalten ChildB.

-Parent 3 enthalten ChildC.

Jeder kann mir eine Lösung für meine Probleme vorschlagen. Danke an alle

Antwort

1

können Sie so etwas tun here.

Ich würde vorschlagen, obwohl Sie Ihre Daten besser ordnen, anstatt über die gleichen Daten 3 mal zu schleifen.

+0

Ich bedauere diese Unannehmlichkeit. Ich habe meine Daten einfach besser geordnet. Kannst du mir helfen, mir Vorschläge zu machen? –

+0

Entschuldigung für die späte Antwort. Ich würde etwas wie [this] (https://embed.plnkr.co/FSgHFURt1aNvnk5Nqv8n/) tun. Bitte beachten Sie die Hierarchie der Daten und der Schleifen, Sie gehen nur über die Kinder eines Objekts, wenn sie existieren und nicht jedes Mal über alle Daten. – nitzanerman

+0

yup .. das stimmt. Du bist ein großartiger Mann: D. Übrigens, können Sie mir bitte eine genauere Erklärung darüber geben, wie dieser Code mit ng-if = "a.children.length> 0" funktioniert? Code hier: [this] (https://embed.plnkr.co/nLZ56CTSml41jOIgQvaM/) und habe ich ein Problem, wenn ich viele Element-Kategorie basierend auf Kategorie-Hierarchie erstellen? –

Verwandte Themen