问题
Using an array, I am trying to filter and show the unique information in the list. For that I use the angular inbuild filter method.
But I am getting error.
Here is my try (I am filtering by SubProjectName)
<ul>
<li ng-repeat="project in projectNames | unique: 'SubProjectName' ">
{project.SubProjectName}}
</li>
</ul>
Live Demo
回答1:
AngularJS doesn't include a unique filter by default. You can use the one from angular-filter. Just include the JavaScript
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular-filter/0.5.8/angular-filter.min.js"></script>
and include the dependeny in your app:
var app = angular.module('myApp', ['angular.filter']);
Your code should work right away! I edited your Plunker so it works.
回答2:
I think you are looking for an answer like this
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;
};
});
<li ng-repeat="project in projectNames | unique:SubProjectName">{{project.SubProjectName}}</li>
Demo
回答3:
The unique filter you are probably attempting to use comes from AngularUI, so you need to include it:
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular-ui/0.4.0/angular-ui.js"></script>
and add it as module dependency:
var app = angular.module('plunker', ['ui.filters']);
回答4:
I have updated your plunkr as http://plnkr.co/edit/sx3u1ukH9752oR1Jfx6R?p=preview added filter dependency
var app = angular.module('plunker', ['angular.filter']);
Hope this may help you
来源:https://stackoverflow.com/questions/32843016/ng-repeat-how-to-get-the-unique-values