Angularjs 控制器中的数据过滤

Angularjs 控制器中的数据过滤,angularjs,Angularjs,我正在尝试筛选控制器中的数据: MyApp.controller( 'MyCtrl', [ '$scope', '$filter', function( $scope, $filter ) { $scope.elements = // array data; $scope.filterByUserSetting = function( element ) { // return true/false depending on whether filter

我正在尝试筛选控制器中的数据:

MyApp.controller( 'MyCtrl', [ '$scope', '$filter', function( $scope, $filter )
{
    $scope.elements = // array data;

    $scope.filterByUserSetting = function( element )
    {
        // return true/false depending on whether filter criterion matches
        // this part is fine
    }

     $scope.elementsFiltered = $filter("filterByUserSetting")($scope.elements);
    // this part doesn't work
}]);
我收到的错误消息是:

Error: [$injector:unpr] http://errors.angularjs.org/1.2.12/$injector/unpr?p0=filterByUserSettingFilterProvider%20%3C-NaNilterByUserSettingFilter at Error (native)...

如何修复此问题?

您需要定义筛选器提供程序,如

angular.module('MyApp', []).
    filter('filterByUserSetting', function() {
      return function(input) {
        // your return, based on your filter logic
      };
    });
然后在控制器中使用它

$scope.elementsFiltered = $filter( "filterByUserSetting" )( $scope.elements )

用传统的方法创建你的过滤器,比如
app.filter
,看:刚才回答了另一个问题,过滤器的定义也不正确