在没有 *ngIf 的情况下使用 Angular 的“as”?

Ing*_*ürk 14 angular

如果我有一些 Observable data$,我可以as在 Angular 中使用如下:

<ng-template #loading>Loading...</ng-template>
<ng-container *ngIf="(data$ | async) as data; else loading">
  <div *ngFor="let item of data">...</div>
</ng-container>
Run Code Online (Sandbox Code Playgroud)

这真的很酷也很有用,因为它避免了data$多次订阅。但是,如果我想避免这样做但留在同一个容器中怎么办?理想情况下,类似(显然不起作用)

<ng-container let-data="data$ | async">
  <ng-container *ngIf="!data">Loading</ng-container>
  <!-- ... -->
</ng-container>
Run Code Online (Sandbox Code Playgroud)

或者

<ng-container *let="(data$ | async) as data">
  <ng-container *ngIf="!data">Loading</ng-container>
  <!-- ... -->
</ng-container>
Run Code Online (Sandbox Code Playgroud)

换句话说,我想利用as绑定来避免多个订阅,但我实际上并不想有条件地呈现该容器。

这可能吗?感觉应该有一个我遗漏的简单答案。:-)


顺便说一句,我当然知道我可以这样做

data$.takeUntil(this.destroy$).subscribe(data => this.data = data);
Run Code Online (Sandbox Code Playgroud)

在我的组件类中,但我想知道是否有办法避免这种情况并直接在模板中处理它。