2015-09-29 10 views
7

Mit einem Array zu bekommen, Ich versuche, die unique Informationen in der Liste zu filtern und zeigen. Dafür benutze ich die angular inbuild filter Methode.‚ng-repeat‘ ​​Wie die `unique` Werte

Aber ich bin immer Fehler.

Hier ist mein Versuch (ich Filterung von SubProjectName)

<ul> 
    <li ng-repeat="project in projectNames | unique: 'SubProjectName' "> 
     {project.SubProjectName}} 
    </li> 
</ul> 

Live Demo

+1

Angular des in Filter eingebaut hat keine 'unique' Methode. – muenchdo

+0

ist es so .. dann, was wäre der Weg, um es zu erledigen? jemand schlägt mich vor? – 3gwebtrain

+1

http://stackoverflow.com/questions/15914658/angular-js-how-to-make-ng-repeat-filter-out-duplicate-results – Sajeetharan

Antwort

18

AngularJS kein unique Filter standardmäßig enthalten. Sie können das von angular-filter verwenden. Gerade sind die JavaScript-

<script src="https://cdnjs.cloudflare.com/ajax/libs/angular-filter/0.5.8/angular-filter.min.js"></script> 

und schließen die dependeny in Ihrer App:

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

Code sollte sofort funktionieren! Ich habe Ihre Plunker bearbeitet, damit es funktioniert.

3

Die unique Filter Sie stammen wahrscheinlich aus AngularUI versuchen, zu verwenden, so dass Sie es hinzufügen müssen:

<script src="https://cdnjs.cloudflare.com/ajax/libs/angular-ui/0.4.0/angular-ui.js"></script> 

und fügen Sie es als Modul Abhängigkeit:

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

kann helfen, ich glaube, Sie suchen eine Antwort wie diese

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

+0

Es ist schön, dies zu tun, anstatt ein anderes Paket hinzuzufügen, das gleiche zu tun Funktionalität – TheMiddleMan