Работа с несколькими выпадающими ng-select - PullRequest
0 голосов
/ 15 апреля 2020

У меня проблемы с реализацией нескольких ng-select (пользовательский поиск на стороне сервера). Как заполнить каждый раскрывающийся список параметрами, основанными на текущей фильтрации итерации?

Stackblitz: https://stackblitz.com/edit/angular-vml2j8

. html

<div *ngFor="let filter of filters;index as i">
    <ng-select [items]="filterValues | async"
             [typeahead]="filterValuesInput"
             [multiple]="true"
             (open)="ngSelectOpened(filter.name)"
             [loading]="filterValuesLoading"
             bindLabel="name"
             [(ngModel)]="selectedFilterValues[pref.name]">
    </ng-select>
</div>

.ts

filterValues: Observable<FilterValues[]>[];
filterValuesLoading = false;
filterValuesInput = new Subject<string>();
selectedFilterValues];

ngSelectOpened(filterName) {
    this.filterValues[filterName] = concat(
      of([]), // default items
      this.filterValuesInput.pipe(
        distinctUntilChanged(),
        tap(() => this.filterValuesLoading = true),
        switchMap(term => this.dataService.getData(term).pipe(
          catchError(() => of([])), // empty list on error
          tap(() => this.filterValuesLoading = false)
        ))
      )
    );
}
...