У меня проблемы с реализацией нескольких 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)
))
)
);
}