我正在尝试在md表中使用ng-if,但出现错误:
Can't have multiple template bindings on one element. Use only one attribute named 'template' or prefixed with *
Run Code Online (Sandbox Code Playgroud)
这是我的模板代码
<md-row *cdkRowDef="let row; columns: displayedColumns" (click)="viewNarrative(row)">
<md-cell *cdkCellDef="let row" *ngIf="!(authService.isAdmin())">
<button md-button (click)="viewNarrative(row)"><md-icon>toc</md-icon> Narrative</button>
<button md-button (click)="editDemographics(row)"><md-icon>edit</md-icon> Demographics</button>
<button md-button (click)="confirmDelete(row, $event)" style="line-height:normal"><md-icon>delete</md-icon> Delete</button>
</md-cell>
</md-row>
Run Code Online (Sandbox Code Playgroud)
当我删除*cdkCellDef="let row"指令时,我得到了错误:ERROR Error: No provider for CdkColumnDef!
那么我该如何实现ng-if指令呢?
问题是您在一个元素上使用了两个带有星号语法的结构指令。您需要打开其中之一。以下应该有效:
<ng-template [ngIf]="!(authService.isAdmin())">
<md-cell *cdkCellDef="let row">
<button md-button (click)="viewNarrative(row)"><md-icon>toc</md-icon> Narrative</button>
<button md-button (click)="editDemographics(row)"><md-icon>edit</md-icon> Demographics</button>
<button md-button (click)="confirmDelete(row, $event)" style="line-height:normal"><md-icon>delete</md-icon> Delete</button>
</md-cell>
</ng-template>
Run Code Online (Sandbox Code Playgroud)
或者直接ngIf移至ng-container:
<ng-container *ngIf="!(authService.isAdmin())">
<md-cell *cdkCellDef="let row">
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9983 次 |
| 最近记录: |