2017-06-09 3 views
-1

ich diese Website haben http://ocr-photos.dk/Angular: Wie verschachtelte ng-repeat filtern

Derzeit werden die Daten speichern in einem Array wie folgt (und das funktioniert gut):

$scope.data = [ 
     { 
     category: 'FundRacers', 
     title: 'FundRacers Events', 
     link: 'https://www.facebook.com/FundRacersDK/', 
     order: '1000', 
     children: [ 
     { category: "FundRacers", event: "FundRacers Påsketrænning", year: "2017-04-14", fotograf: "Nikolaj Borup", link: "https://www.facebook.com/media/set/?set=a.1930098447223523.1073741963.1543490649217640&type=1&l=dce31258df", link2: "" } 
     , { category: "FundRacers", event: "FundRacers GetFitGym Event", year: "2016-12-10", fotograf: "Lena Toft Pedersen og Filip Rasmussen", link: "https://www.facebook.com/media/set/?set=a.1867935790106456.1073741957.1543490649217640&type=1&l=db17b724a0", link2: "" } 
     ] 
     }, 
     { 
     category: 'Evolution Race', 
     title: 'Evolution Race', 
     link: 'https://www.facebook.com/evolutionrace/', 
     order: '1100', 
     children: [ 
     { category: "Evolution Race", event: "Sky", year: "2017-06-04", fotograf: "Jens Petersen", link: "https://www.facebook.com/media/set/?set=a.10155273811362660.1073741862.290365527659&type=1&l=e4df786a18", link2: "" } 
     , { category: "Evolution Race", event: "Sky", year: "2017-06-04", fotograf: "Tommy Jensen", link: "https://www.facebook.com/media/set/?set=a.1953270791572955.1073741972.1543490649217640&type=1&l=04c3a9e905", link2: "" } 
     ] 
     }, 
     } 
     ]; 

Ich möchte um die Daten so zu ändern, dass sie in zwei Arrays enthalten sind, eines mit Kategorien und eines mit den Links. Aber wenn ich das tue, habe ich Probleme damit, den Filter für die geschachtelte ng-Wiederholung richtig funktionieren zu lassen.

Die erste ng-Repeat sieht wie folgt aus

<li class="list-group-item" ng-repeat="item in data | orderBy:'order'"> 

Die zweite sieht wie folgt aus:

<li class="list-group-item" ng-repeat="child in item.children | filter:searchText | orderBy:'-year'"><a href="{{child.link }}" target="_blank">{{ child.year }} - {{ child.event }} - Fotograf {{ child.fotograf }}</a></li> 

Wenn ich die Daten wie diese

 $scope.category = [ 
     { category: 'FundRacers', title: 'FundRacers Events',link: 'https://www.facebook.com/FundRacersDK/', order: '1000'} } 
     ]; 


     $scope.links = [ 
     { category: "FundRacers", event: "FundRacers Påsketrænning", year: "2017-04-14", fotograf: "Nikolaj Borup", link: "https://www.facebook.com/media/set/?set=a.1930098447223523.1073741963.1543490649217640&type=1&l=dce31258df", link2: "" } 
     ]; 
ändern

Wie sollte ich meine zwei ng-Wiederholung ändern, um das gleiche Ergebnis zu erhalten?

Ich habe versucht, mehrere verschiedene Versionen og verschachtelten ng-repeat

<li class="list-group-item" ng-repeat="cat in category | orderBy:'order'"> 

<li class="list-group-item" ng-repeat="link in links | filter:cat.category"></li> 

<li class="list-group-item" ng-repeat="link in links | filter:{{cat.category}}"></li> 

<li class="list-group-item" ng-repeat="link in links | filter:'cat.category'"></li> 

Nichts bisher gearbeitet. Entweder bekomme ich die gesamte Liste in jeder Kategorie oder ich bekomme nichts.

+0

Ihre erste Lösung gut ist, warum sollte man das ändern? – nevradub

+0

Ich möchte es ändern, weil ich in der Lage sein möchte, alle Links aufgelistet nach Link-Namen und andere Ansichten, die ich nicht sehen kann, mit der aktuellen Datenstruktur zu sehen. – Tommy

+0

Sie können dies in Ihrer zweiten ng wiederholen: {{$ index + 1}} für Ihre li mit Index von Ihrem Element in Array. – nevradub

Antwort

0

Ich fand es selbst. Dummer Tippfehler.

Dies funktioniert

<li class="list-group-item" ng-repeat="link in links | filter:cat.category"></li>

Verwandte Themen