1
我有一個可觀察的(或主題)角4組件,我在模板中使用async
管道,如下所示:如何刪除/銷燬角度2 +模板中的觀察值
<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模板,而不是顯示可觀察內容的模板,在它顯示後者之後?
感謝您的回覆。但是這對我來說並不適用,即使主題是完整的,模板仍會顯示通過主題最後發生的任何內容。 –
@ R.Wenger你可以在第一個observable完成後使用'exhaust'操作符發出'false'值。 'Observable.of(this.subject,假).exhaust()' – cgTag