首页 > 解决方案 > Ng If 在 Angular 6 中的可观察变量中不起作用

问题描述

我已根据此链接将 Angular6 材料数据网格与服务器端分页集成在一起 https://blog.angular-university.io/angular-material-data-table/

在这里,如果响应中的数据集为空,我想显示“未找到数据”。我可以获取映射 Observable 的 totalCount,然后可以打印如下视图。但是,ngIf 不起作用。

  private totalCountSubject = new BehaviorSubject([]);
  public totalCount$ = this.totalCountSubject.asObservable();
  this.totalCountSubject.next([body.data.count]);

  // View
  {{dataSource.totalCount$}} <!-- It displayes 0 or count of the row -->

   <!-- It does not work. --->
   <span *ngIf="(dataSource.totalCount$ | async) === 0 ">
     NO DATA FOUND!!!!
   </span>

知道为什么 ngIf 在这种情况下不起作用。

标签: angulartypescriptangular-material2

解决方案


用嵌套ngIf的 s处理条件

<ng-container *ngIf="dataSource.totalCount$ | async as totalCount">  
   <span *ngIf="totalCount == 0 ">
     NO DATA FOUND!!!!
   </span>

<ng-container>

推荐阅读