使用Angular 5将阵列和嵌套json显示到Ag网格

时间:2018-06-04 11:44:14

标签: json angular ag-grid

我有一个方案来绑定嵌套和json数组以使用angular 5绑定ag-grid。我尝试在我的colDefs行数据上使用valueGetter作为Json来绑定。似乎没有什么可以解决的。我也没有看到有关文档的例子。

这是我到现在为止的json和代码。

杰森:

{
"packages": [
{
  "packageId": 2,
  "name": "Name1",
  "isEnabled": true,
  "packageRegistrationTypes": [
    {
      "registrationType": {
        "registrationTypeId": 1,
        "description": "Reg1"
      },
      "isActive": true
    },
    {
      "registrationType": {
        "registrationTypeId": 45,
        "description": "Reg2"
      },
      "isActive": false
    }
  ]
 }
 ]
}

Angular 5:Coldef

  {headerName: 'Package Name',checkboxSelection: true,rowGroupIndex: 0, valueGetter: params => params.data.packages[0].name},

我从服务绑定的行值,但未能获得它。 我应该使用任何不同的格式来绑定嵌套值和数组值。

2 个答案:

答案 0 :(得分:1)

我从未尝试过弯曲ColDef,只是在获取原始数据后稍微更改一下数据格式。

您的数据是基于密钥而不是常规数组,我会这样做

.subscribe(res => {
    this.data = Object.values(res.packages);
})

答案 1 :(得分:0)

Basically exactly what @windmaomao said. When you call setRowData using the agGrid api pass data.packages as a parameter :- this.gridOptions.api.setRowData(data.packages); Following that field: 'name', should work when put inside the columnDefs (so I guess there would be no need for the valueGetter any more either)