1

私が次の見解を持っているとしましょう:

<tr ng-repeat="user in users" >
    <td>{{$index + 1}}</td>
    <td>{{user.id}}</td>
    <td>{{user.pageViews}}</td>
    <td>{{user.urls}}</td>
</tr>

次のように複数のフィルターを静的に適用できます。

<tr ng-repeat="user in users | filter:idFilter | filter:pageViewFilter | filter:urlsFilter">

0からNまでのフィルターをng-repeatに動的に適用するにはどうすればよいですか?

4

2 に答える 2

4

$ filterを使用して、コントローラーのフィルターにアクセスできます。デモ は次のとおりです:http: //jsfiddle.net/EGVwG/6/

<ul ng-repeat="num in getData()" >
  <li>{{num.val}}</li>
</ul>

$scope.getData = function() {
  var finalData = $scope.arrVal;

  if($scope.bFilterEnabled)
    finalData = $filter('filter')(finalData, $scope.searchText);

  if($scope.bSortEnabled)
    finalData = $filter('orderBy')(finalData, 'val');

  return finalData;
}
于 2013-01-24T05:28:44.983 に答える
1

すべてのフィルターを適用するのはどうですか。ただし、一部のフィルターは「何もしない」(すべて合格条件)。または、別のカスタムフィルタを作成して、結果を連鎖させることもできます。

于 2013-01-24T00:25:44.317 に答える