使用Angular"""没有* ngIf?

时间:2017-11-29 12:44:11

标签: angular

如果我有一些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);

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

0 个答案:

没有答案