我有一个方案来绑定嵌套和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},
我从服务绑定的行值,但未能获得它。 我应该使用任何不同的格式来绑定嵌套值和数组值。
答案 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)