如何在ng-options中获取唯一元素

时间:2017-09-25 10:31:42

标签: angularjs ng-options

我在使用ng-options

过滤String数组时遇到问题

假设我有一个这种类型的数组

$scope.params.output = ["A","B","A","B","A","B"];

以及此类型的HTML:

ng-options="item as item for item in params.output | unique : 'item'"

我的选择渲染所有数组,而不过滤它,我哪里出错了?

2 个答案:

答案 0 :(得分:0)

在您的代码中添加unique.js。复制此js并将其放在单独的js文件中并将其附加到您的代码

答案 1 :(得分:0)

使用此过滤器。它会起作用。

app.filter('unique', function() {
    return function(collection, keyname) {
        var output = [], 
        keys = [];

        angular.forEach(collection, function(item) {
            var key = item[keyname];
            if(keys.indexOf(key) === -1) {
                keys.push(key);
                output.push(item);
            }
        });

        return output;
    };
});

<强>模板

<div ng-repeat="item in items | unique: 'id'"></div>