Angular.js: фильтр ng-repeat по отсутствию в массиве

Мне нужно фильтровать элементы в ng-repeat, так что будут отображаться только те элементы, которые не отображаются в массиве alreadyAddedValues ​​():

<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

Ответ 1

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

<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/