如何用Array#filter()过滤

时间:2017-11-24 01:34:13

标签: javascript angularjs

我从API获取信息,我想过滤一些结果:

这是我使用API​​的代码:

function listData() {
    $http.get('/api/Invoices?')
        .then(function(data) {
            $scope.list = data.data.Response;
    });
}

然后,使用ng-repeat,我提供一个列表:

<tr ng-repeat="info in list">
                <th>{{info.Id}}</th>
                <th>{{info.Name}}</a></th>
                <th>{{info.value}}</th>
                <th>{{info.FiscalFolio}}</th>
</tr>

我希望在使用API​​时过滤Id。有人让我使用Array#filter(),但我不能让它工作。这是我的测试,但我不确定是对的:

function listData() {
    $http.get('/api/Invoices?')
        .then(function(data){
            $scope.list = data.data.Response;

            var pool = $scope.list;

            var ajax = pool.filter(function(xavier) {
                return xavier.StatusId === 1;                
            }); 
        });     
}

我有两个问题:

  1. 我使用过滤器的方式是否正确?
  2. 我是否需要将变量放在html视图上?
  3. 你能帮我举个例子吗?

1 个答案:

答案 0 :(得分:4)

filter()返回一个新数组。如果您不关心任何其他数据,只需将Response数组分配给$scope.list

$scope.list = data.data.Response.filter(function(xavier){
     return xavier.StatusId === 1;
}); 

如果您需要存储Response数组,可以将其分配给另一个变量,以便稍后在其上使用另一个过滤器