【发布时间】:2016-06-24 07:35:40
【问题描述】:
我是 ag-grid 的新手,并且正在使用带有 angularjs (1.X) 的 ag-grid。我遇到了一些问题,非常感谢您的帮助。
在我的场景中,我的网格中的列数不是固定的。根据用户输入,网格列及其计数会发生变化。因此,我根据服务器返回的数据(通过 ajax 调用)动态定义我的列定义。
这就是我的数据的样子。
rowData = [ { "name": "Tom", "Skills": ["JS", "Angular", "PHP" ] } ,
{ "name": "Tim", "Skills": ["C#, "Java", "C++" ] }
]
完成动态生成 columnDef 后,我的 columnDef 如下所示:
columnDefs = [ { "headerName": "Name", "field": "name"},
{ "headerName": "Skill1",
"valueGetter": "getSkill",
"colId": 0,
"onCellValueChanged" = skillEdited,
"editable": true },
{ "headerName": "Skill2",
"valueGetter": "getSkill",
"colId": 1,
"onCellValueChanged" = skillEdited,
"editable": true },
{ "headerName": "Skill3",
"valueGetter": "getSkill",
"colId": 2,
"onCellValueChanged" = skillEdited,
"editable": true }
]
问题 1: 当我更改网格中的技能时,我的“skillEdited”方法被调用,但 params.newValue 设置为 oldValue 并且 params.oldValue 设置为 undefined。所以,我基本上没有得到新的价值。当用户更改技能时,我希望更新 rowData 类。我怎样才能做到这一点?
问题 2:我是否正确绑定了数据和列?还是我做错了什么?
非常感谢您的帮助。 维吉
【问题讨论】:
-
也许 valueGetter 搞砸了。尝试使名称可编辑,看看它是否工作相同。
-
@Walfrat 感谢您的回复.....使用 newValueHandler 而不是 onCellValueChanged 解决了我的问题。
-
没问题,回答你自己的问题并验证它,这样有同样问题的人就会知道。
标签: ag-grid