2013-08-17 7 views
5

So habe ich einen Datensatz von Unternehmen in einer Variablen in einem Controller gespeichert.AngularJS ng-repeat Filterung mit einer OR-Anweisung

Dann habe ich meine Liste, wo ich alle Firmen von a oder b auflisten möchte. Ich dachte, Senden und Array würde als eine Anweisung funktionieren. Es stellt sich heraus, dass es eher wie eine UND-Aussage ist.

<ul> 
    <li ng-repeat="company in companies | filter:filters{type: ['a', 'b']}"> 
     {{company.name}} 
    </li> 
</ul> 

Der obige Code würde „erstes Unternehmen“ Liste, während ich es, sowohl die „ersten Unternehmen“ zur Liste mag und die „zweite Gesellschaft“. Ich weiß, dass ich das $ scope.companies-Dataset vom Controller aus manipulieren könnte, aber ich würde gerne wissen, ob es eine "native" Möglichkeit gibt, dies zuerst zu erreichen.

Mit freundlichen Grüßen! // Richard

Antwort

11

Ihre einzigen Optionen ist ein Filter mit einer Funktion zu verwenden:

<ul> 
    <li ng-repeat="company in companies | filter:customFunction"> 
     {{company.name}} 
    </li> 
</ul> 

Wo

$scope.customFunction = function(item){ /* true if you want item, false if not */ } 

Quelle: http://docs.angularjs.org/api/ng.filter:filter#parameters

+0

Dank! Viel eleganter als Permutationen des Datensatzes. Danke auch für die Quelle! –

+0

Danke! @RichardLilja warum hast du diese Antwort nicht als die Lösung für deine Frage bestätigt? Es macht es höher in Suchmaschinen für Suchanfragen, die zu Ihrem Problem passen, hätte mir geholfen, diese elegante Lösung zu finden, bevor Sie Zeit verschwenden, einen benutzerdefinierten Filter zu machen –