簡體   English   中英

如果某些 boolean 在 angular 中為真,如何有條件地在 ng-container 中的 observable 上應用異步 pipe

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM