Это может быть сделано путем введения зависимость этого фильтра в контроллер и назвав его в коде как
var filteredArray = filterDependency(arrayToFilter,args);
, который возвращает новый, отфильтрованный массив. Поскольку вы используете фильтр «фильтр» (это фильтр, имя которого является фильтром), инъекция зависимостей должна быть filterFilter
. Ваш контроллер должен выглядеть следующим образом:
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
});
});
То, что мы делаем, установив часы на модели ввода (search
), таким образом, мы можем получить новое значение и в любое время повторной фильтрации массива со входным изменяются ,
Также:
Если вам необходимо получить доступ к индексу ng-repeat
внутри точки зрения, вы можете использовать специальное свойство $index
внутри ng-repeat
как:
<div ng-repeat="item in list | filter:search">
{{$index}}
</div>
Вы можете также используйте $first
, $middle
, и $last
as shown in this Angular doc.
Demo: Here is a fiddle
Я не 100% уверен, что вы просите ... Вы задаетесь вопросом, как вы можете сказать, если вы находитесь на первом элементе функции фильтра? – Polaris878