[英]How to display the child array in angular ag grid
here's the code:这是代码:
rowData = [{
room: 'Room 1',
data: [{
name: 'justin'
},{
name: 'josh'
}];
},{
room: 'Room 2',
data: [{
name: 'juan'
},{
name: 'luna'
}];
}];
columnDefs = [{
headerName: 'Room',
field: 'room'
},{
headerName: 'Name',
field: 'name'
}]
HTML HTML
<ag-grid-angular
#agGrid
style="width: 100%; height: 100%;"
id="myGrid"
class="ag-theme-alpine-dark"
[columnDefs]="columnDefs"
[rowData]="rowData"
(gridReady)="onGridReady($event)"
></ag-grid-angular>
What I'm trying to do is to display the child array in the grid.我想要做的是在网格中显示子数组。 but when I try to run/console it return undefined.
但是当我尝试运行/控制台时,它返回未定义。
also I tried this:我也试过这个:
valueGetter: function(params: any) {
return console.log(params.data.data.name);
}
it return undefined它返回未定义
params.data.data[0].name
is the correct expression params.data.data[0].name
是正确的表达式
Because the data attribute in row is actually array of names.因为 row 中的 data 属性实际上是名称数组。 You can also put a check like
你也可以像
if(params.data.data && params.data.data.length > 0){ return params.data.data[0].name; } else{ return ''; }
Define name field in colDef like 'data.name'
在 colDef 中定义名称字段,如
'data.name'
valueGetter: this.customValueGetter
I would use customValueGetter
like -我会像使用
customValueGetter
-
customValueGetter(params) {
const items;
const columnField = params.colDef.field;
const arrayNm = columnField.split(".")[0];
const fieldNm = columnField.split(".")[1];
if(params.data && params.data[arrayNm]) {
params.data[arrayNm].forEach((item) => items.push(item[fieldNm]));
}
return items.join(","); //comma separated names
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.