2016-04-23 12 views
0

Ich versuche, einzigartige Ergebnisse in eckigen ng-Optionen auf einer Auswahlbox zu erhalten.Einzigartige ng-Optionen in Angular

<select ng-model="nationality" id="nationality" 
     ng-options="player as player.nationality for player in players></select> 

Der obige Code wird mir alle die Nationalität, aber es zeigt Duplikate.

<select ng-model="nationality" id="nationality" 
     ng-options="player as players | unique: 'player.nationality'"></select> 

Wenn ich diesen Code Winkel Wurf Fehler versuche und zeigt mir nichts in der Auswahlbox.

-Controller

var app = angular.module('premierLeagueDB', []); 
app.controller('mainCtrl', function($scope, $http) { 
$http({ 
    method : "GET", 
    url : "api.php/clubs", 
}).then(function mySucces(response) { 
    $scope.clubs = response.data.club; 
}, function myError(response) { 
    $scope.showError = response.statusText; 
}); 
}); 

Dank.

+0

Können Sie die Controller – choz

+0

scheint wie ähnliche Frage http://stackoverflow.com/questions/14748440/angular-js-using-ng-options-to-only-display-unique-values ​​ –

+0

Es gibt keine solche Sache genannt "einzigartig" in eckig, wenn Sie es nicht von einer 3rd-Party-Bibliothek bekommen. Warum filtern Sie keine Duplikate in Ihrem Controller? – mostruash

Antwort

2

Ich denke, dieser Code wird für Sie arbeiten:

<select ng-model="nationality" id="nationality" ng-options="player as players | unique: 'nationality' "></select> 

=== === EDIT

Basierend auf dieser post, müssen Sie die Drittanbieter-Bibliothek, die Sie bieten die filter Service, Fügen Sie this library in Ihre HTML-Datei ein.

== EDIT 2 === Um zu demonstrieren, wie das funktioniert, mache ich eine working fiddle. In dieser Geige verwende ich anuglar-ui Bibliothek, um das Modul zu ersetzen, und es funktioniert wie erwartet.

Wenn Sie nur ‚ui.filters‘ Modul benötigen, aber nicht die anderen Teile (nur Import notwendige Module sind die beste Praxis), hier ist another fiddle link, die nur die unique Funktion aus dem ui-filter Modul importiert.

+0

Das gibt mir einen Fehler. '' 'angular.js: 12416Fehler: [ngOptions: iexp]' '' – GarethFrazer

+0

@GarethFrazer, Ich habe den Code –

+0

aktualisieren Ich habe die dritte Partei-Bibliothek enthalten, über die Sie gesagt haben. Ich bekomme immer noch den gleichen Fehler. – GarethFrazer