简体   繁体   English

如何在angular ag网格中显示子数组

[英]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 ''; }

  1. Define name field in colDef like 'data.name'在 colDef 中定义名称字段,如'data.name'
    valueGetter: this.customValueGetter

  2. 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM