2017-09-25 2 views
0

Je vais avoir des problèmes sur le filtrage d'un tableau de String avec ng-optionsComment obtenir élément unique en ng-options

En supposant que j'ai un tableau de ce type

$scope.params.output = ["A","B","A","B","A","B"]; 

et un HTML ce type:

ng-options="item as item for item in params.output | unique : 'item'" 

ma sélection rend tout le tableau, sans le filtrer, où ai-je eu tort?

+0

Avez-vous inclus lib pertinent comme indiqué dans [cette réponse] (https://stackoverflow.com/a/15941016/492258) –

+0

https: // lodash .com/docs/4.16.4 # uniq –

+0

Je pense que vous devriez ajouter un filtre unique sur params.output –

Répondre

0

Ajouter unique.js dans votre code.Copy ce js et placez-le dans le fichier js séparé et joignez-le à votre code

0

utiliser ce filtre . ça va marcher.

app.filter('unique', function() { 
    return function(collection, keyname) { 
     var output = [], 
     keys = []; 

     angular.forEach(collection, function(item) { 
      var key = item[keyname]; 
      if(keys.indexOf(key) === -1) { 
       keys.push(key); 
       output.push(item); 
      } 
     }); 

     return output; 
    }; 
}); 

Modèle:

<div ng-repeat="item in items | unique: 'id'"></div> 
+0

ce code fonctionnera pour array of object et vous voulez pour obtenir un objet unique. pour le tableau de chaînes, il y a une modification mineure dans le code. –