Angular JS - 过滤器和组

时间:2014-09-30 21:58:21

标签: angularjs filter

我有一组数据,我从数据库中以JSON的形式返回。我需要过滤这些结果并获取我要回复的每个销售代表的名称。诀窍是每个销售代表不止一次在我的结果中,但在我的最终列表中,我只希望将名称包含一次。

像Sarah,Ben,Ben,John,Mike,Luke,John

将回归莎拉,本,约翰,迈克,卢克

    $http({
        url: '/Clients/Orders/Json',
        method: "GET",
        params: {}
    }).success(function (data) {
        var JSON = data;
        $scope.data = JSON; 
    });     

我的数据位于$ scope.data中。

我正在寻找有关构建过滤器以运行此数据的想法,以及如何在我的视图页面上访问过滤后的信息。

1 个答案:

答案 0 :(得分:0)

过滤 -

app.filter('distinct', function() {
    return function(arrayInput) {
        var distinctArray = [];

        for (var i = 0; i < arrayInput.length; i++) {
            if( distinctArray.indexOf(arrayInput[i]) < 0 ){
                distinctArray.push(arrayInput[i]);
            }
        }

        return distinctArray;
    };
});

然后在控制器或服务中注入过滤器distinctFilter,以过滤出数组$scope.data中的不同名称

app.controller('MyCtrl', function($scope, distinctFilter) {
    ...
    // populate $scope.data with array of names

    $scope.distinctNames = distinctFilter($scope.data);

});