2013-02-12 10 views
12

Ich brauche Elemente in ng-repeat zu filtern, so dass nur die Elemente in alreadyAddedValues ​​erscheinen, die nicht() Array gezeigt wird:Angularjs: Filter ng-Repeat durch Abwesenheit in Array

<ul class="dropdown-menu"> 
    <li ng-repeat="v in values() | filter: { ????? } ">{{value.name}}</li> 
</ul> 

$scope.values() = function(){ 
    ................ 
} 

$scope.alreadyAddedValues() = function() 
{ 
    //returns an array 
} 

Die Suche ein bereits Mehrwert von value.shortName

Antwort

30

ausführen soll, können Sie zum Beispiel verwenden, um eine benutzerdefinierte Funktion, um die Filterung zu tun:

<li ng-repeat="v in values() | filter:filterAlreadyAdded ">{{value.name}}</li> 

auf dem Controller:

$scope.filterAlreadyAdded = function(item) { 
    // filter logic here... 
    // return false if item already added, true otherwise 
}; 

jsfiddle: http://jsfiddle.net/bmleite/5VbCJ/

+3

Ich habe eine andere Geige spielte die Anordnung der bereits addierten Werte übergeben, um es generic etwas zu machen. Hier finden Sie http://jsfiddle.net/4MBbw/ –