2

Here is my angular ui select 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>

and here is response_template_directories

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

Select list also showing duplicates

enter image description here

How can i remove these duplicates in ui select html?

4
  • you can implement a custom filer or filter your response_template_directories array in your controller Commented Nov 10, 2016 at 13:55
  • yes i can but i want to do this in html Commented Nov 10, 2016 at 13:57
  • 1
    Possible duplicate - stackoverflow.com/questions/15914658/… Commented Nov 10, 2016 at 13:57
  • I forgot that angularUi implement a unique filter, it saves you (and all of us :) some work. Many thank to @Matheus Commented Nov 10, 2016 at 14:00

1 Answer 1

3

Use filter unique (implement from AngularUI or import 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>

Or write your own filter with lodash:

app.filter('unique', function() {
    return function (arr, field) {
        return _.uniq(arr, function(a) { return a[field]; });
    };
});
Sign up to request clarification or add additional context in comments.

2 Comments

You must to implement this filter (github.com/angular-ui/angular-ui/blob/master/modules/filters/…) on your application or do this with lodash.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.