Плагин mat-select-autocomplete продолжает запускать событие, когда не выбрана ни одна опция - PullRequest
0 голосов
/ 15 апреля 2020

Я использую Angular плагин множественного выбора материала для отображения выпадающего списка множественного выбора с автозаполнением. Я использовал этот плагин для динамического отображения нескольких выпадающих списков.

<div class="sidebar-select-container" *ngFor="let select of sidebarDropdownSelectList; let i = index;">
    <div>
        <mat-select-autocomplete 
        class="autocomplete-select"
        id="{{i}}"
        [placeholder]="select.main_display_name"
        [options]="select.main_data"
        [multiple]='true'
        [display]="'display'"
        [value]="'value'"
        [selectedOptions]="selectedOptions"
        (selectionChange)="getSelectedOptions($event)"
        (click)="getTypeOfDropdown(i)"
        >
        </mat-select-autocomplete>
        <i class="fa fa-angle-down alternate-select-icon" aria-hidden="true"></i>
    </div>
</div>

Я использовал @ViewChildren для запроса DOM о множественных выпадающих списках и возврата QueryList.

@ViewChildren(SelectAutocompleteComponent) multiSelect: 
  QueryList<SelectAutocompleteComponent>;

Когда я пытаюсь выполнить операцию над getSelectedOptions ($ event) и вернуть что-то, когда не было сделано выделение, как показано ниже

  getSelectedOptions(selected) {
    this.selected = selected;
    if (this.selected.length < 1) {
       console.log('hi');
    }
  }

Затем эта функция запускается при каждом действии, например, при щелчке мыши, при перемещении курсора мыши. Он должен работать только когда я выполняю операцию изменения, но он просто продолжает печатать «привет» в консоли. Он ведет себя так, только когда в массиве this.selected нет данных или нет выбора. Я даже протестировал на сайте плагинов, но у него та же проблема. Я хочу вызвать событие только тогда, когда нет выбора, который тоже только один раз.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...