4

我是 ag-grid 的新手,并且正在使用带有 angularjs (1.X) 的 ag-grid。我遇到了一些问题,非常感谢您的帮助。

在我的场景中,我的网格中的列数不是固定的。根据用户输入,网格列及其计数会发生变化。因此,我根据服务器返回的数据(通过 ajax 调用)动态定义我的列定义。

这就是我的数据的样子。

rowData = [ { "name": "Tom", "Skills": ["JS", "Angular", "PHP" ] } , 
            { "name": "Tim", "Skills": ["C#, "Java", "C++" ] }
          ]

完成动态生成 columnDefs 后,我的 columnDefs 如下所示:

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:我是否正确绑定了数据和列?还是我做错了什么?

非常感谢您的帮助。维吉

4

1 回答 1

1

使用 newValueHandler 而不是 onCellValueChanged 解决了我的问题......

于 2016-03-21T17:01:40.487 回答