2013-02-06 5 views
15

Ich versuche, eine wenn in eine ng-Wiederholung Richtlinie zu implementieren, aber ich habe eine harte Zeit. mein Code, der für jetzt arbeiten ist:if-Anweisung innerhalb einer ng-Repeat-Direktive auf Angular.js

<p ng-repeat="list in lists">{{list[id].title}}</p> 

Was will ich

<p ng-repeat="list in lists if list[id].selected">{{list[id].title}}</p> 

Natürlich im Grunde zu tun ist, in der zweiten Zeile ich eine Störung erhalte. Irgendwelche Ratschläge dazu?

Vielen Dank.

+2

Ich weiß nicht wirklich Angular, aber von dem, was ich gelesen habe, könnten Sie wahrscheinlich erreichen, dass mithilfe von Filtern. –

+0

Ich habe einige Studien mit einem Filter zu zeigen oder nicht. Ich könnte es mit ng-switc, ng-show und ng-hide machen. Das Problem ist, dass dies eine Menge Zeug zu meinem HTML hinzufügen würde, etwas, das ich nicht kenne, sobald es eine riesige Liste ist. @ yabol – marceloduende

Antwort

34

Wie ich in einem Kommentar schrieb, könnten Sie Filter verwenden, um das zu erreichen. Hier ist Beispiel: http://jsfiddle.net/sebmade/ZfGx4/44/

ng-repeat="list in lists | filter:myFilter" 


Und Filtercode:

$scope.myFilter = function(item) { 
    return item.selected == true; 
}; 


Edit:
Ich fand, dass es möglich ist, es mit Inline-Filter zu tun, wie folgt aus:

ng-repeat="list in lists | filter:{selected: true}" 
+0

Danke Herr, das war genau das, was ich gesucht habe. Danke – marceloduende

+2

+1 für die eingebettete Syntax – Webnet

+0

Ich sehe Geige entfernt und zeigt 404. Bitte aktualisieren Sie den Link. – Kurkula

10

Was müssen Sie hier hinzuzufügen, ist ein Filter:

<p ng-repeat="list in lists | filter:{selected:true}">test {{list.title}}</p> 

I a plnkr as an example hinzugefügt haben.

Verwandte Themen