![](/img/trans.png)
[英]How can we apply custom directive conditionally in angular 6 when using node projection with <ng-container></ng-container>?
[英]How to apply async pipe on observable in ng-container conditionally if some boolean is true in angular
我有一個使用 Angular 的異步 pipe 訂閱的 http 請求。 我需要的邏輯是只有在某個條件為真時才將異步 pipe 添加到 ng-container 標記中。 我嘗試了以下代碼:
<ng-container *ngIf="eventCode != 'ADD' ? this.tableObservable | async as detailData : true">
<ng-container *ngIf="this.dataTable">
<tk-dynamic-table-versatile
[metadata]="eventCode != 'ADD' ? detailData.payload.metadata : this.children[0].metadata" [data]="eventCode != 'ADD' ? detailData.payload.data : null"
#dynamictable1>
</tk-dynamic-table-versatile>
</ng-container>
</ng-container>
如果字符串 eventCode='ADD',我需要 tableObservable 只有異步 pipe。 否則我不想對 tableObservable 進行任何操作。
有沒有辦法在 angular 中有條件地將異步 pipe 添加到 ng-container 中?
期待有關解決此問題的最佳方法的一些見解。
您不能使用模板語法有條件地綁定到異步 pipe,它只是不支持它。 您可以做的是在組件的邏輯中有條件地訂閱this.tableObservable
,例如:
ngOnInit(): void {
if (this.eventCode !== 'ADD') {
this.tableObservable.subscribe({
next: (data) => {
this.detailData = data;
}
});
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.