In AngularJS è possibile filtrare un elenco di valori tramite la keyword filter è l'operatore pipe |.
Può essere usato, ad esempio, con ng-repeat o ng-options:
<div ng-repeat="item in ctrl.functionAll | filter: 'valore di filtro' " ></div>
in questo caso fa una ricerca parziale sui ogni proprietà di ogni item di ctrl.functionAll e restituisce solo gli elementi che fanno match con la condizione di filtro.
ctrl è l'alias del mio controller

A volte può essere utile filtrare solo su una specifica proprietà contenuta nell'oggetto:
<select ng-options="v.i as v.d for v in ctrl.functionAll | filter : {scope: {i: 4}}" ></select>
anche in questo caso la ricerca è parziale sulla propietà scope.i.

Se voglio un match esatto posso aggiungere la keyword true in coda al filtro separato da un due punti:
<select ng-options="v.i as v.d for v in ctrl.functionAll | filter : {scope: {i: 4}} : true" ></select>
ovviamente il valore passato al filtro non deve necessariamente essere una costante, ma può essere un altra proprietà del modello:
<select ng-options="v.i as v.d for v in ctrl.functionAll | filter : {scope: ctrl.form.idScope} : true" ></select>

Nel caso servisse un filtro più complesso è anche possibile creare una funzione nel controller:
self.filterScope = function(item){
  if(item.scope.i === self.form.idScope) // if(item.scope.i === 4)
    return true;
  else
   return false;
};
se non si usano gli alias sostituire self con $scope
<select ng-options="v.i as v.d for v in ctrl.functionAll | filter : ctrl.filterScope" ></select>
Vedi anche Filter e Filters