2013-02-12 2 views
12

мне нужно фильтровать элементы в нг-повторе, так что только те элементы, которые не появляются в alreadyAddedValues ​​() массив будет показан ниже:Angular.js: фильтр нг-повтор отсутствия в массиве

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

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

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

Поиска о уже добавленной стоимости следует выполнять с помощью value.shortName

ответ

30

Вы можете, например, использовать пользовательскую функцию фильтрации:

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

на контроллере:

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

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

+3

Я сделал альтернативный скрипку передать передать массив уже добавленных стоимостей, чтобы сделать его немного более универсальным. Находится здесь http://jsfiddle.net/4MBbw/ –

Смежные вопросы