Ag Grid与对象的嵌套数组

时间:2019-11-12 18:58:25

标签: angular typescript ag-grid ag-grid-angular

我计划使用AG Grid显示网格。但是我有一种用例是关于这种数据结构的:

   get gridOptions(): GridOptions {
        return {
          ...this.options,

          defaultColDef: this.defaultColumnDefs,
          columnDefs: this.columnDefs,

          enableCharts: false,

          treeData: true,
          getDataPath: this.dataPath
        };
      }

    get columnDefs(): Array<{children?: Array<_ColDef>; skipKey?: boolean;}> {
        return [
          {
            headerName: 'Component',
            children: this.columnDefs_component
          }
        ];
      }

      get columnDefs_component(): Array<{children?: Array<_ColDef>; skipKey?: boolean;}> {
        return [
          {
            headerName: 'Component',
            field: 'componentName'
          },
          {
            headerName: 'Model',
            field: 'model'
          },
          {
            headerName: 'Rules',
            children: this.columnDefs_rules
          }
        ];
      }

  get columnDefs_rules(): Array<{children?: Array<_ColDef>; skipKey?: boolean;}> {
    return [
      {
        headerName: 'Id',
        field: 'rules.ruleId',
      },
      {
        headerName: 'Limit Value',
        field: 'rules.value'
      },
      {
        headerName: 'Precondition',
        field: 'rules.precondition'
      }
    ];
  }

我很难将规则显示为组件的嵌套行。到目前为止,如果规则是单个嵌套对象,我就可以创建网格,但是当需要处理数组对象时,我的逻辑就会中断。

我正在使用以下代码指定列的定义:

valueGetter

使用上述方法,与嵌套规则对象数组相关的单元格上将不显示任何内容。我可以使用object Object并设置一个函数来返回对象数组,但是它将显示'rules.0.field'的列表,而不是rules对象的值。

我所缺少的是如何告诉Ag-Grid规则列是Rule节点内的Rule Objects数组。

有人可以向我指出如何实现这一目标的方法吗?

注意:我可以通过将字段设置为show()来显示一条记录,但这只会显示数组的第一个值,而不显示其他值...

0 个答案:

没有答案