【问题标题】:How to remove duplicate options from angular ui select?如何从角度 ui 选择中删除重复的选项?
【发布时间】:2016-11-10 13:53:55
【问题描述】:

这是我的 Angular 用户界面选择 html:

<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 select html 中删除这些重复项?

【问题讨论】:

  • 您可以在控制器中实现自定义过滤器或过滤response_template_directories 数组
  • 是的,我可以,但我想在 html 中这样做
  • 我忘记了 angularUi 实现了一个独特的过滤器,它为您(以及我们所有人:) 节省了一些工作。非常感谢@Matheus

标签: angularjs angular-ui-select


【解决方案1】:

使用唯一过滤器(从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]; });
    };
});

【讨论】:

猜你喜欢
  • 2018-01-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多