'ng-repeat'如何获得'unique`值

3gw*_*ain 11 angularjs ng-repeat angular-filters

使用数组,我试图过滤并显示unique列表中的信息.为此,我使用angularinbuild filter方法.

但我收到了错误.

这是我的尝试(我过滤了SubProjectName)

<ul>
    <li ng-repeat="project in projectNames | unique: 'SubProjectName' ">
        {project.SubProjectName}}
    </li>
</ul>
Run Code Online (Sandbox Code Playgroud)

现场演示

mue*_*hdo 20

AngularJS unique默认不包含过滤器.您可以使用角度过滤器中的那个.只需包含JavaScript

<script src="https://cdnjs.cloudflare.com/ajax/libs/angular-filter/0.5.8/angular-filter.min.js"></script>
Run Code Online (Sandbox Code Playgroud)

并在您的应用中包含依赖项:

var app = angular.module('myApp', ['angular.filter']);
Run Code Online (Sandbox Code Playgroud)

您的代码应该可以正常运行!我编辑了你的Plunker,所以它的工作原理.


Sha*_*era 5

我想你正在寻找这样的答案

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

app.controller('MainCtrl', function($scope) {
  $scope.projectNames=projects
  $scope.Id = "1";
  $scope.SubProjectName="Retail Building";

})
.filter('unique', function() {
  return function(projects, subProjectName) {
    var newprojects =[];
    projects.forEach(function(project){
      if(project.SubProjectName === subProjectName)
        newprojects.push(project);
    });
    return newprojects;
  };
});
Run Code Online (Sandbox Code Playgroud)
<li ng-repeat="project in projectNames | unique:SubProjectName">{{project.SubProjectName}}</li>
Run Code Online (Sandbox Code Playgroud)

演示