当异步管道为空时,我有一个简单的设置来显示加载微调器:
<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$ 未订阅,或者在更改检测后有角度抱怨更改