0

У меня есть следующий раскрывающийся, который работает отличноПоказаны уникальные варианты выпадающие в Angularjs

     <select class="form-control" ng-model="cc.id"> 
         <option value="">Chose Id</option> 
         <option ng-repeat="account in accounts |unique:'id'" value="{{account.id}}">{{name.id}}</option> 
         </select> 

Это дает мне следующие варианты в выпадающем списке

  101 
      101 
      119 
      120 
      121 
      121 

Хотя это должно быть только показывает уникальный идентификатор в опциях, как ...

 101 
     119 
     120 
     121 

Счета состоят из массива Джейсона учетной записи, которая имеетact_id (первичный ключ) идентификатор имя_файла LNAME расположение

Можете ли вы сказать мне, как установить уникальный фильтр на идентификатор, так что он отображает только уникальные значения Благодаря

+0

пожалуйста, обеспечивают 'accounts' + имя объекта –

ответ

0

AngularUI имеет именно то, что вам нужно, в'unique' фильтр.

Пример:

ng-options="color in colors | unique:'name'" 
1

По this AngularJS не имеет уникальный фильтр - AngularUI.

Следующий код по ссылке выше, должны помочь:

app.filter('unique', function() { 
    return function(input, key) { 
     var unique = {}; 
     var uniqueList = []; 
     for(var i = 0; i < input.length; i++){ 
      if(typeof unique[input[i][key]] == "undefined"){ 
       unique[input[i][key]] = ""; 
       uniqueList.push(input[i]); 
      } 
     } 
     return uniqueList; 
    }; 
}); 

Кроме того, вы можете использовать что-то вроде этого:

<select ng-model="accounts" ng-options="c.name for c in accounts"></select><br> 

для избранных.

2

Я бы использовал uniq способ из Underscore библиотека.

И только написать одну строку:

$scope.new_accounts = _.uniq(accounts, false, function(p){ return p.id; }); 

демонстрационной Fiddle

Ссылка:

uniq_.uniq (массив, [isSorted], [итератора]) Псевдоним: уникальный Производит дубликат-fr ee версии массива, используя === для проверки равенства объектов. Если вы заранее знаете, что массив отсортирован, передача true для isSorted будет выполнять гораздо более быстрый алгоритм. Если вы хотите вычислить уникальные элементы на основе преобразования, передайте функцию итератора.

_.uniq([1, 2, 1, 3, 1, 4]); 
=> [1, 2, 3, 4] 
Смежные вопросы