2016-11-10 2 views
1

여기 내 각 UI HTML을 선택입니다 :각도 ui select에서 중복 옵션을 제거하는 방법은 무엇입니까?

<ui-select title="Select Template Directory" ng-change="searchTemplate()" theme="select2" ng-model="search_data.sub_directory" id="search_sub_directory" name="search_sub_directory" class="search_panel"> 
    <ui-select-match allow-clear="true" placeholder="Select Template Directory">{{$select.selected.subDirectory}}</ui-select-match> 
    <ui-select-choices repeat="template.subDirectory as template in response_template_directories | filter: $select.search"> 
     <span ng-bind-html="template.subDirectory | highlight: $select.search"></span> 
    </ui-select-choices> 
</ui-select> 

하고 여기 response_template_directories

[ 
{subDirectory : 1}, 
{subDirectory : 1}, 
{subDirectory : 1}, 
{subDirectory : 1}, 
{subDirectory : 1}, 
{subDirectory : 1}, 
{subDirectory : 2}, 
{subDirectory : 3}, 
] 

선택 목록도 보여주는 중복 내가 UI에서 이러한 중복을 제거 할 수있는 방법

enter image description here

html을 선택 하시겠습니까?

+0

는 사용자 정의 파일러를 구현하거나 – Naigel

+0

예 내가 할 수있는 컨트롤러에'response_template_directories' 배열을 필터링하지만 내가 원하는 수 있습니다 this in html –

+1

가능한 중복 - http://stackoverflow.com/questions/15914658/how-to-make-ng-repeat-filter-out-duplicate-results –

답변

2

필터 고유 (구현 : AngularUI 또는 가져 오기 a8m/angular-filter)를 사용하십시오.

<ui-select title="Select Template Directory" ng-change="searchTemplate()" theme="select2" ng-model="search_data.sub_directory" id="search_sub_directory" name="search_sub_directory" class="search_panel"> 
<ui-select-match allow-clear="true" placeholder="Select Template Directory">{{$select.selected.subDirectory}}</ui-select-match> 
<ui-select-choices repeat="template.subDirectory as template in response_template_directories | unique: 'subDirectory' | filter: $select.search"> 
    <span ng-bind-html="template.subDirectory | highlight: $select.search"></span> 
</ui-select-choices> 

또는 lodash와 자신의 필터를 쓰기 :

app.filter('unique', function() { 
    return function (arr, field) { 
     return _.uniq(arr, function(a) { return a[field]; }); 
    }; 
}); 
+0

에게 감사드립니다. https://docs.angularjs.org/error/$injector/unpr?p0=uniqueFilterProvider%20%3C-%20uniqueFilter –

+0

이 필터 (https : // github)를 구현해야합니다. .com/angular-ui/angular-ui/blob/master/modules/filters/unique/unique.js)를 응용 프로그램에 적용하거나 lodash로이 작업을 수행하십시오. – Matheus

+0

좋습니다. 감사합니다. 그것은 내 문제를 해결했다. –

관련 문제