【发布时间】:2017-07-14 14:42:02
【问题描述】:
我在 Angular 4 组件中有一个 observable(或主题),我在模板中使用它和 async 管道,如下所示:
<div *ngIf="(orderObservable | async) as order; else noOrder ">
The active order was created at {{ order.created_at }}
</div>
<ng-template #noOrder>
There is no active order at the moment. Sorry.
</ng-template>
只要订单不存在或通过 HTTP 调用检索,这就像一个魅力。在代码中,这看起来像这样:
this.orderObservable = OrderService.getActive();
如果此调用返回一个带有订单的可观察对象,它将显示在模板中。如果没有,则显示 #noOrder 模板。
现在我的问题是:如果我将 observable 更改为主题,并且当前活动的订单不再存在(即因为它已提交或关闭),有没有办法删除主题,或将某些内容传递给主题,所以模板显示 #noOrder 模板而不是显示可观察内容的模板,在它已经显示后者之后?
【问题讨论】: