これは、フィルターの依存関係をコントローラーに注入し、次のようなコードで呼び出すことで実行できます。
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>
この Angular doc に示されているように、、、およびを$first
使用$middle
することもできます。$last
デモ:ここにフィドルがあります