hel*_* rb 1 observable rxjs angular
我想显示一些基于响应的 html 代码,但在接收响应之前渲染 HTML。
网页:
<div *ngIf="medias.length > 0">
some text
</div>
<div *ngIf="!medias.length > 0">
some other text
</div>
Run Code Online (Sandbox Code Playgroud)
时间:
ngOnInit(): void {
this.getMedias();
}
medias: Array<T> = [];
getMedias() {
this.controllerApiService
.getById()
.subscribe(data => {
this.medias = data
});
}
Run Code Online (Sandbox Code Playgroud)
根据上面的代码,首先显示“一些其他文本”,收到响应后,显示“一些文本”
我尝试使用skip()和skipWhile()来处理,但没有任何改变。
这里有多个问题。
首先,充分发挥 RxJS 的潜力。然后,充分发挥 Angular 的潜力。最后,使用正确的条件使其一切正常。
<ng-container *ngIf="medias$ | async as medias">
<div *ngIf="medias.length; else noMedia">
Some media : {{ medias.length }}
</div>
<ng-template #noMedia>
No media
</ng-template>
</ng-container>
Run Code Online (Sandbox Code Playgroud)
medias$ = this.getMedias().pipe(shareReplay(1));
getMedias() {
return this.controllerApiService.getById();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
72 次 |
| 最近记录: |