在ng-repat

时间:2015-09-25 08:37:10

标签: angularjs

从ng-repeat中删除重复: 错误:[$ injector:unpr] http://errors.angularjs.org/1.4.6/ $ injector / unpr?p0 = uniqueFilterProvider%20%3C-%20uniqueFilter

 <script>
    module.filter('unique', function() {
                       return function(collection, keyname) {
                           alert(collection);
                           alert('under the function');
                          var output = [], 
                              keys = [];

                          angular.forEach(collection, function(item) {

                              var key = item[keyname];
                              alert(key);
                              if(keys.indexOf(key) === -1) {
                                  keys.push(key);

                                  output.push(item);
                              }
                          });
                          alert('output');
                          return output;

                       };
                    });


    </script>

1 个答案:

答案 0 :(得分:0)

您可能无法正确地将过滤器注册为模块,因此Angular并不知道它存在。假设您的Angular应用程序定义如下

var app = angular.module('myApp', []);

请务必按照以下方式声明您的过滤器:

app.filter('unique', function () {
  ...
});

另外,请务必在<script>中使用index.html标记添加声明过滤器的JavaScript文件。