У меня есть простая настройка, чтобы показать загрузочный счетчик, когда асинхронная труба пуста:
<div *ngIf="(searchResults$ | async) as searchResults; else loading">
</div>
<ng-template #loading>
loading..
</ng-template>
Однако, когда пользователь выполняет поиск снова во второй раз, загрузка .. не отображается,Я полагаю, мне нужен этот searchResults $ observable, чтобы выдавать значение null, чтобы снова показать счетчик, или иметь отдельную переменную isLoading.
Каков наилучший способ сделать это?
, если это имеет значение, я 'у меня есть debounce и switchMap (то есть сложно с использованием finalize и т. д.)
this.searchResults$ = this.filters$
.pipe(
debounceTime(200),
distinctUntilChanged(),
switchMap((f) => {
return httpGet(f)
})
)
также, я попытался *ngIf="!isLoading && (searchResults$ | async) as searchResults
, но нашел это проблематичным, например, searchResults $ не подписан, или подал жалобу на изменения после обнаружения изменений