2016-11-10 86 views
1

这里是我的角度UI选择HTML:如何从角度ui选择删除重复的选项?

<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}, 
] 

选择列表也显示出重复

enter image description here

我怎样才能在用户界面中删除这些重复选择html?

+0

可以实现自定义过滤器或控制器 – Naigel

+0

是的,我可以过滤'response_template_directories'数组,但我想做的事这在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

太好了。 thankx。它解决了我的问题 –