Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 在垫台的垫单元内实现if-else条件-角度5_Angularjs_Typescript_Angular5_Mat Table - Fatal编程技术网

Angularjs 在垫台的垫单元内实现if-else条件-角度5

Angularjs 在垫台的垫单元内实现if-else条件-角度5,angularjs,typescript,angular5,mat-table,Angularjs,Typescript,Angular5,Mat Table,在我的角度应用程序中,我试图在mat表的mat单元格内实现if-else条件。但是我从控制台得到错误“错误错误:StaticInjectorError(AppModule)[NgIf->TemplateRef]:” 我的代码是 <ng-container matColumnDef="role"> <mat-header-cell *matHeaderCellDef>Role</mat-header-cell> <mat-c

在我的角度应用程序中,我试图在mat表的mat单元格内实现if-else条件。但是我从控制台得到错误“错误错误:StaticInjectorError(AppModule)[NgIf->TemplateRef]:”

我的代码是

<ng-container matColumnDef="role">
    <mat-header-cell *matHeaderCellDef>Role</mat-header-cell>        
    <mat-cell *matCellDef="let user" ngIf="{{user.roles.length == 1}}">
        Admin          
    </mat-cell>
  </ng-container>

角色
管理

非常感谢您提供的任何帮助。

您有
ngIf
,但它的前缀应该是星号:
*ngIf

此外,对于像
*ngIf
这样的绑定指令属性,您不需要在其中使用花括号。只要执行
*ngIf=“user.roles.length==1”
就可以了

但是,通常不能在同一个元素上有两个带星号的指令,因此使用另一个
可能是解决此问题的方法:

<ng-container matColumnDef="role">
  <mat-header-cell *matHeaderCellDef>Role</mat-header-cell>
  <ng-container *ngIf="user.roles.length == 1">
    <mat-cell *matCellDef="let user" >
      Admin          
    </mat-cell>
  </ng-container>
</ng-container>

角色
管理

您可以使用一个类将显示设置为“无”,并将实现该技巧

<ng-container matColumnDef="role">
<mat-header-cell *matHeaderCellDef>Role</mat-header-cell>        
<mat-cell *matCellDef="let user" [ngClass]="'hide':user.roles.length == 1">
    Admin          
</mat-cell>

我也遇到过同样的问题。。我提出了以下解决方案

  • 您可以按如下方式使用
    [ngClass]

  • 谢谢,但这将不起作用,因为“用户”在ng containerah中没有定义。是的,可能只是切换这两个元素的顺序。无论怎样,您都必须使用2个元素,因为您有两个使用
    *
    的指令,并且每个元素只能有一个。
    .hide {
      display: none;
    }
    
      <tr mat-footer-row [ngClass]="dataSource.length==0 ? 'hide' : ''" *matFooterRowDef="displayedColumns1"></tr>
    
      <tr mat-footer-row [hidden]="dataSource.length==0" *matFooterRowDef="displayedColumns1"></tr>