如何使用动态值将“name”属性添加到<mat-cell>或<mat-row>?

时间:2018-03-13 14:35:02

标签: angular typescript angular-material angular-material2

我有一个mat-table,一次渲染大约10行。此表的数据源来自API调用作为对象数组。我想在其中的name元素或mat-cell元素中添加mat-row属性,其值为字符串与该行的索引连接。

我可以分别通过*matCellDef="let i = index"*matRowDef="let i = index;"获取索引。但是,如果我将name属性的值添加为name="monitoring{{i}}",那么它就不会将该属性添加到该标记/元素。但是如果我从值中移除{{i}}(使其成为name="monitoring"),那么它将被分配字符串并且将完美显示但每行的名称变得相同。

有没有人知道如何将动态值分配给name属性,以及我在赋值中做错了什么,以至于它没有出现在动态值赋值上?

提前谢谢。

P.S这是我正在尝试的代码 -

  

不起作用:(

     

<mat-row *matRowDef="let row; columns: displayedColumns; let i = index;" name="monitoring{{i}}"></mat-row>

     

作品

     

<mat-row *matRowDef="let row; columns: displayedColumns;" name="monitoring"></mat-row>

2 个答案:

答案 0 :(得分:0)

使用名称作为对象输入:[name]="'monitoring' + i";

答案 1 :(得分:0)

确定。所以我发现问题在于<mat-cell><mat-row>如何接受并操作name属性。因此,当我使用[attr.name]代替name[name]时,这已得到修复。

最终作业表达式 -

<mat-cell *matCellDef="let i = index" [attr.name]="'monitoring'+i">{{i}}</mat-cell>