ngRepeat を特定のフィールドについてフィルタリングする
app.controller('Ctrl', function($scope) { $scope.widgets = [ { name: 'foo', description: 'basic model' }, { name: 'bar', description: 'upper model of foo' } ]; });
name と description を持つ Widget というモデルがあって、これを ngRepeat でリスト表示しているとする。
このリストをフィルタリングするとき以下のようにすると、query が name か description のどちらかに
マッチするしたら表示される。
<input ng-model="query"> <div ng-repeat="widget in widgets | filter: query">
たとえば query が 'foo' のときは、foo は name で、bar は description でマッチするので、2つとも表示される。
name だけでフィルタリングをかけたければ以下のようにすると良い。
<input ng-model="query"> <div ng-repeat="widget in widgets | filter: { name: query }">
参考:Angular.js ng-repeat :filter by single field - stackoverflow