0

我为我的应用程序使用自定义筛选器。如何获得角度js控制器中的返回滤波器数组数据?

 
div class="cust-post" ng-repeat="post in newsfeeddata | customFilter:companyFilters" 

在上面的代码customFilter返回我需要使用该数组数据到我的控制器的数组数据。我不知道如何检索数组数据。

任何人都请帮助我。

+0

您可以为属性指定一个过滤值:'ng-repeat =“post in(filteredData =(newsfeeddata | customFilter:companyFilters))“'你也可以在''newsfeeddata''中使用'as'表示法:'ng-repeat = customFilter:companyFilters as filteredData“' – devqon

回答

0

过滤功能,其返回的数组:

app.filter('customFilter', function() { 
    return function(newsfeeddata, companyFilters) { 
     return items.filter(function(element){ 
     return companyFilters >= element.minValue;//Compare the values 
     }); 
    } 
}); 

在控制器:

var filteredData = $filter('customFilter')(newsfeeddata, companyFilters); 
1

尝试内ng-repeatas关键字,则您可以通过$scope.array访问过滤数组:

angular.module('app', []) 
 
.controller('ctrl', ['$scope', function($scope) { 
 
    $scope.items=[ 
 
     {name:'A'}, 
 
     {name:'BA'}, 
 
     {name:'CB'}, 
 
    ]; 
 
    $scope.test = function() { 
 
     $scope.out = $scope.array.map(x => x.name).join(', ');  
 
    } 
 
}])
<script src="//code.angularjs.org/snapshot/angular.min.js"></script> 
 

 
<div ng-app='app' ng-controller="ctrl"> 
 
    <input type='text' ng-model='search' ng-init='search = "A"'/> 
 
    <ul> 
 
    <li ng-repeat='item in items | filter: search as array'>{{item}}</li> 
 
    </ul> 
 
    <input type='button' ng-click='test()' value='Test'/> 
 
    <hr/> 
 
    {{out}} 
 
</div>