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