ngFor 在 mat select 选项中包含对象的嵌套数组
ngFor netsted array with objects in mat select option
我有带选项的垫子表单字段 select
<mat-form-field appearance="outline">
<mat-label>TestMat</mat-label>
<mat-select placeholder="TestMat" [formControl]="testControl">
<mat-option *ngFor="let arr of arrTmp" [value]="arr">
{{arr.name}}
</mat-option>
</mat-select>
</mat-form-field>
其中 arrTmp =
[
[{
"name": "name1",
"id": "1"
}],
[{
"name": "name2",
"id": "2"
}, {
"name": "name3",
"id": "2"
}]
]
因此在垫子表单字段内我有
[object Object]
[object Object],[object Object]
如何才能正常显示arr.name?
您可以添加一个元素,如 span,在第一个数组上添加一个 ngFor 循环,然后使用您当前的 ngFor 对嵌套数组进行 foop。
所以这意味着做类似的事情:
<mat-form-field appearance="outline">
<mat-label>TestMat</mat-label>
<mat-select placeholder="TestMat" [formControl]="testControl">
<span *ngFor="let mainArr of arrTmp">
<mat-option *ngFor="let arr of mainArr" [value]="arr">
{{arr.name}}
</mat-option>
</span>
</mat-select>
</mat-form-field>
您需要为嵌套数组使用一个额外的 for 循环,
请看下面的代码
<mat-form-field appearance="outline">
<mat-label>TestMat</mat-label>
<mat-select placeholder="TestMat" [formControl]="testControl">
<ng-container *ngFor="let arr of arrTmp">
<mat-option *ngFor="let item of arr" [value]="item">
{{item.name}}
</mat-option>
</ng-container>
</mat-select>
</mat-form-field>
我有带选项的垫子表单字段 select
<mat-form-field appearance="outline">
<mat-label>TestMat</mat-label>
<mat-select placeholder="TestMat" [formControl]="testControl">
<mat-option *ngFor="let arr of arrTmp" [value]="arr">
{{arr.name}}
</mat-option>
</mat-select>
</mat-form-field>
其中 arrTmp =
[
[{
"name": "name1",
"id": "1"
}],
[{
"name": "name2",
"id": "2"
}, {
"name": "name3",
"id": "2"
}]
]
因此在垫子表单字段内我有
[object Object]
[object Object],[object Object]
如何才能正常显示arr.name?
您可以添加一个元素,如 span,在第一个数组上添加一个 ngFor 循环,然后使用您当前的 ngFor 对嵌套数组进行 foop。
所以这意味着做类似的事情:
<mat-form-field appearance="outline">
<mat-label>TestMat</mat-label>
<mat-select placeholder="TestMat" [formControl]="testControl">
<span *ngFor="let mainArr of arrTmp">
<mat-option *ngFor="let arr of mainArr" [value]="arr">
{{arr.name}}
</mat-option>
</span>
</mat-select>
</mat-form-field>
您需要为嵌套数组使用一个额外的 for 循环, 请看下面的代码
<mat-form-field appearance="outline">
<mat-label>TestMat</mat-label>
<mat-select placeholder="TestMat" [formControl]="testControl">
<ng-container *ngFor="let arr of arrTmp">
<mat-option *ngFor="let item of arr" [value]="item">
{{item.name}}
</mat-option>
</ng-container>
</mat-select>
</mat-form-field>