Как сбросить ng-select в угловых - PullRequest
2 голосов
/ 26 июня 2019

Я хочу сбросить ng-select, когда нажимаю кнопку очистки, мой код такой, как показано ниже:

<ng-select (change)="setFilter('','')" 
           [items]="eventType"
           bindLabel="name"
           bindValue="id"
           placeholder="Select Event Type"
           [(ngModel)]="event_type" id="eventType">
</ng-select>
<button class="acq-btn acq-btn-default"(click)="clearFilter()">Clear</button>

Функция, которую я создал, выглядит следующим образом:

eventType = [
    {id: 'create', name: 'Create'},
    {id: 'update', name: 'Update'},
    {id: 'delete', name: 'Delete'},
];

clearFilter(){
    this.event_type = '';
    this.setFilter('','');
}

Используя select, я фильтрую данные. Фильтрация работает нормально. Кнопка «Очистить» тоже подойдет, просто пользовательский интерфейс показывает крестик, как показано ниже:

enter image description here

Можете ли вы помочь мне в этом вопросе?

Ответы [ 2 ]

1 голос
/ 26 июня 2019

Поскольку вы используете двустороннее связывание [(ngModel)]:

<ng-select 
           (change)="setFilter('','')" 
           [items]="eventType"
           bindLabel="name"
           bindValue="id"
           placeholder="Select Event Type"
           [(ngModel)]="event_type" 
           id="eventType">
</ng-select>

В вашем компоненте необходимо добавить пустое значение и установить [(ngModel)] на желаемое значение в clearFilter() метод:

event_type: any;

eventType = [
    {id: 'empty', name: ''},
    {id: 'create', name: 'Create'},
    {id: 'update', name: 'Update'},
    {id: 'delete', name: 'Delete'},
];

clearFilter(){
    this.event_type = this.eventType[0];
}
0 голосов
/ 26 июня 2019

Если, например, вы можете установить в раскрывающемся списке значение по умолчанию «создать», вы можете сделать это следующим образом:

eventType = [
    {id: 'create', name: 'Create'},
    {id: 'update', name: 'Update'},
    {id: 'delete', name: 'Delete'},
];

clearFilter(){
    this.event_type = 'create';
    this.setFilter('','');
}

В качестве альтернативы вы можете указать пустую опцию:

eventType = [
    {id: '', name: ''},
    {id: 'create', name: 'Create'},
    {id: 'update', name: 'Update'},
    {id: 'delete', name: 'Delete'},
];

clearFilter(){
    this.event_type = '';
    this.setFilter('','');
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...