Questo può essere fatto iniettando dipendenza del filtro in un controllore e la chiamata in codice come
var filteredArray = filterDependency(arrayToFilter,args);
che restituisce un nuovo array filtrato. Dato che stai usando il filtro "filtro" (è un filtro il cui nome è filtro), l'iniezione della dipendenza dovrebbe essere filterFilter
. Il controller dovrebbe essere simile a questo:
var app = angular.module('myapp',[]);
app.controller('ctrlParent',function($scope,filterFilter){
var filteredArray = [];
$scope.list = ["abc","def","ghi","abcdefghi"];
$scope.$watch('search',function(newValue){
filteredArray = filterFilter($scope.list, newValue);
// do something with the first result
console.log(filteredArray[0]); // first result
});
});
Quello che stiamo facendo è la creazione di un orologio sul modello di ingresso (search
) in modo che possiamo ottenere il nuovo valore e ri-filtro la matrice in qualsiasi momento si cambia l'ingresso .
anche:
Se è necessario accedere all'indice ng-repeat
dall'interno della vista, è possibile utilizzare la proprietà speciale $index
all'interno del ng-repeat
come:
<div ng-repeat="item in list | filter:search">
{{$index}}
</div>
Puoi utilizzare anche $first
, $middle
e $last
as shown in this Angular doc.
Demo: Here is a fiddle
Io non sono sicuro al 100% quello che si sta chiedendo ... Vi state chiedendo come si può dire se sei il primo elemento nella funzione filtro? – Polaris878