如何从控制器过滤数据

时间:2014-06-04 08:56:21

标签: javascript angularjs

如何过滤来自控制器的数据

$scope.aciveresults = data ;  // data -- getting  from service 

我试过了

$scope.aciveresults = $filter( data | data.status == true ) ;

但它引发了错误。

我想显示数据只有状态为true并且想要在控制器中显示它。

请建议

4 个答案:

答案 0 :(得分:2)

  • 将$ filter注入您的控制器
  • 然后,无论您想使用过滤器,

    $filter('filtername');

在您的情况下,您必须使用内置过滤器过滤器

$filter('filter')($scope.aciveresults,{status:true})

Fiddle

或者您也可以通过过滤器名称和过滤器后缀来调用过滤器。 所以,

function MyCtrl($scope,filterFilter){
   filterFilter($scope.aciveresults,{status:true})
}

答案 1 :(得分:1)

如果你想在javascript中使用过滤器这样做

$scope.aciveresults = $filter('filter')(data, {status: true}, [true/false for strict mode])

https://docs.angularjs.org/api/ng/filter/filter

答案 2 :(得分:0)

您应该在ng-repeat中执行此操作,如下所示:

 ng-repeat="items in data | filter:item.status == true"

因为,很可能,data.status不存在,数据是一组对象,每个对象都有一个状态键/值对。

答案 3 :(得分:0)

var resultArray = $filter('filter')($scope.aciveresults , {status:true} );

语法: $filter('filter')(array, expression, comparator)

检查角度文档以获取更多过滤操作