0

我有一个使用 Angular 的异步管道订阅的 http 请求。我需要的逻辑是只有在某个条件为真时才将异步管道添加到 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 只有异步管道,否则我不希望对 tableObservable 进行任何操作。

有没有办法以角度有条件地将异步管道添加到 ng-container?

期待有关解决此问题的最佳方法的一些见解。

4

1 回答 1

0

您不能使用模板语法有条件地绑定到异步管道,它只是不支持它。您可以做的是this.tableObservable在组件的逻辑中有条件地订阅,例如:

ngOnInit(): void {
  if (this.eventCode !== 'ADD') {
   this.tableObservable.subscribe({
     next: (data) => {
       this.detailData = data;
     }
   });
  }
}
于 2022-01-27T12:24:03.797 回答