如果我有一些Observable data$
,我可以在Angular中使用as
,如下所示:
<ng-template #loading>Loading...</ng-template>
<ng-container *ngIf="(data$ | async) as data; else loading">
<div *ngFor="let item of data">...</div>
</ng-container>
这非常酷且有用,因为它避免不止一次订阅data$
。但是,如果我想避免这样做但保持在同一个容器内怎么办?理想情况下,(显然不起作用)
<ng-container let-data="data$ | async">
<ng-container *ngIf="!data">Loading</ng-container>
<!-- ... -->
</ng-container>
或
<ng-container *let="(data$ | async) as data">
<ng-container *ngIf="!data">Loading</ng-container>
<!-- ... -->
</ng-container>
换句话说,我想使用as
绑定来避免多个订阅,但我实际上并不想有条件地呈现该容器。
这可能吗?感觉应该有一个我错过的简单答案。 : - )
另一方面,我当然知道我可以做到
data$.takeUntil(this.destroy$).subscribe(data => this.data = data);
在我的组件类中,但我想知道是否有办法避免这种情况并直接在模板中处理它。