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