简体   繁体   English

如何从控制器过滤数据

[英]How to filter data from controller

How to filter data from controller 如何从控制器过滤数据

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

i have tried 我努力了

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

But it throwing error . 但是它抛出错误。

I want to show the data only have status true and want to do in controller itslef . 我只想显示数据的状态为true,并要在控制器itslef中进行操作。

Please suggest 请建议

  • Inject $filter to your controller 将$ filter注入控制器
  • Then wherever you want to use filter, 然后,无论您要在哪里使用过滤器,

    $filter('filtername');

In your case you have to use the built-in filter filter . 您必须使用内置的filter 过滤器

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

Fiddle 小提琴

OR you can also invoke the filter by filter name plus the Filter suffix. 或者,您也可以通过过滤器名称加上过滤器后缀来调用过滤器。 So, 所以,

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

if you want to use filter in javascript do it this way 如果您想在javascript中使用过滤器,请按照这种方式进行

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

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

You should probably do this in your ng-repeat, like so: 您应该在ng-repeat中执行此操作,如下所示:

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

since, most probably, data.status doesn't exist, data is a set of objects, each having a status key / value pair. 因为最有可能data.status不存在,所以data是一组对象,每个对象都有一个状态键/值对。

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

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

Check angular docs for more filter operations 检查角度文档以了解更多过滤器操作

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM