コントローラー内では、テキストへの変更を監視しquery
、Javascript に相当する を使用できます。{expression} | filter: {expression}
これは、挿入する必要がある service から名前が$filter('filter')
付けられたフィルターを使用することです。'filter'
$filter
HTML スニペットがコントローラーMyControllerによって制御されているとしましょう。次に、次のように変更できます。
myApp.controller("MyController", ["$scope", "$filter", function($scope, $filter) {
$scope.$watch('query', function(newVal, oldVal) {
console.log("new value in filter box:", newVal);
// this is the JS equivalent of "phones | filter: newVal"
$scope.filteredArray = $filter('filter')($scope.phones, newVal);
});
}]);
変更するたびquery
に、フィルタリングされた配列が $scope として利用可能になり、スニペットで式としてfilteredArray
使用できます。filteredArray
これはすべて、実際にはhttp://docs.angularjs.org/api/ng.$filterおよびhttp://docs.angularjs.org/api/ng.filter:filterで文書化する必要があります。ただし、最初のリンクのドキュメントはまばらすぎて、実際にはコメントから 2 番目のリンクまでしか取得できません。ドキュメントに追加しようとしましたが、angular を複製してドキュメントをビルドした後、ブラウザー経由でそれらにアクセスすることはできず、API のナビゲートは有用なエラーなしでサイレントに失敗したため、それをあきらめました。