如何在AgGrid中创建专栏? Angular2

时间:2018-05-14 08:36:32

标签: angular ag-grid

我正在试图在AgGrid中以dinamic的方式创建列,因为我没有说他构造了JSON。我对'for'

有疑问

HTML

<ag-grid-angular #agGrid style="width: 100%; height: 100%;" id="myGrid" class="ag-theme-balham" [columnDefs]="columnDefs"
  (gridReady)="onGridReady($event)">
</ag-grid-angular>

Component.ts

  private gridApi;
  private gridColumnApi;
  public gridOptions;
  public columnDefs;

  constructor(
    private http: HttpClient,
  ) {}



  private createColumns(data) {
    return [{
                   I TRY...
          }]; 
  }

  ngOnInit() {
    this.gridOptions = <GridOptions>{};
  }

  onGridReady(params) {
    this.gridApi = params.api;
    this.gridColumnApi = params.columnApi;

    this.http.get(this.config.getUrl('projectunits')).subscribe(data => {
      console.log(data);
      params.api.setRowData(data);
       this.columnDefs = this.createColumns(data);

    });
    params.api.sizeColumnsToFit();
  }

我试试:

return [{
     data.Results.array.forEach(element => {
    console.log(element);
     });
 }]; 

这说:data.希望“:”

我也试试:

 return [{
      for (i = 0; i < data.Results.length; i++) {
            console.log(data[i]);
    }
  }

这就是说“算术运算符应该是任何数字”

我遇到了问题,我尝试了4种不同的东西......

我的意图或想法是:

private createColumns(data) {
    return [{
            for (i = 0; i < data.Results.length; i++) {
             headerName: data[i] ,
             field: data[i],
             }
          } ]; //End header agrid
  }

因为我不知道Json的结构:

1 个答案:

答案 0 :(得分:1)

您可以尝试:

private createColumns(data) {
    const columns: { [fieldName: string]: ColDef } = {};
    data.Results.forEach(colData => {
        columns[colData.id] = {
            headerName: colData.header,
            field: coldata.field
        }
    })
    return columns;
}