AngularJS根据数组的值过滤字段

时间:2017-09-05 01:58:44

标签: angularjs arrays angularjs-filter

我有一个数组,这个数组包含一些Id。 我想根据Id的过滤我的结果。

例如,请参阅下面的代码段。 如何显示'StatusId'位于'ids'数组中的记录? 根据我的例子,我只想列出:

AAA BBB CCC

<html>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>

<script>
    angular.module('myApp', []).controller('ctrl', function ($scope) {

        $scope.ids = [{
            "id": 1
        }, {
            "id": 2
        }, {
            "id": 3
        }]

        $scope.records = [
            {
                "Name": "AAA",
                "StatusId": 1
            },
            {
                "Name": "BBB",
                "StatusId": 1
            },
            {
                "Name": "CCC",
                "StatusId": 2
            },
            {
                "Name": "DDD",
                "StatusId": 4
            },
            {
                "Name": "EEE",
                "StatusId": 4
            },
]


    });
</script>


<body>
    <div id="idctrl" ng-app="myApp" ng-controller="ctrl">
        <ul>
            <li ng-repeat="x in records">
                {{ x.Name }}
            </li>
        </ul>
    </div>
</body>

</html>

1 个答案:

答案 0 :(得分:1)

您可以使用javascript&#39;过滤器&#39;功能:

records = $scope.records.filter((record) => {
    return record.StatusId === 1
});

这将返回一个新数组,该数组仅包含StatusId为1的记录。您可以使用此更新的数组来显示所需的记录。