ag-grid - 角度为1.x的setRowData未定义

时间:2017-03-09 16:26:44

标签: javascript angularjs ag-grid

我无法通过访问$ scope.girdOptions.api.setColumnDefs来更新ag-gird girdOptions columnDefs。

Plunkr code is here

我想要实现的是按表格分组,具有不同的值。

    var masterColumnDefs = [
    {headerName: 'Name', field: 'name',
        // left column is going to act as group column, with the expand / contract controls
        cellRenderer: 'group',
        // we don't want the child count - it would be one each time anyway as each parent
        // not has exactly one child node
        cellRendererParams: { suppressCount: true }
    },
    {headerName: 'Account', field: 'account'},
    {headerName: 'Calls', field: 'totalCalls'},
    {headerName: 'Minutes', field: 'totalMinutes', cellFormatter: minuteCellFormatter}
];

cellRenderer:'group'代码是他们内置的用于处理分组的代码,因此这个示例包含在展开时在行内部渲染网格。

虽然他们可以使用pivot菜单选项动态地执行该组,但是我需要在行内部呈现网格,因此我在响应中获得的JSON类似于Plunkr中的rowData。

因此,我无法使用pivot选项进行动态分组。

我在这里要解决的问题是通过修改它来更新上面的masterColumnDefs

` masterColumnDefs = [
    {headerName: 'Name', field: 'name'
    },
    {headerName: 'Account', field: 'account',
        // left column is going to act as group column, with the expand / contract controls
        cellRenderer: 'group',
        // we don't want the child count - it would be one each time anyway as each parent
        // not has exactly one child node
        cellRendererParams: { suppressCount: true }},
    {headerName: 'Calls', field: 'totalCalls'},
    {headerName: 'Minutes', field: 'totalMinutes', cellFormatter: minuteCellFormatter}
];`

并使用

更新gridOptions
  

$ scope.gridOptions.api.setColumnDefs(masterColumnDefs);

没有什么可以帮助我。

可能是其他一些解决方案也可以做这个功能,但我没有得到它。

注意事项:

  1. 我的响应类似于在jnk中的plunkr like和array中的mock JSON,稍后会被函数修改。
  2. 我需要在扩展群组时渲染网格。
  3. 我需要通过透视企业工具或按钮来分组另一个值,通过访问api来更新columnDef,就像在plunkr中一样。
  4. 任何想法都会有很大的帮助。

1 个答案:

答案 0 :(得分:2)

当您为角度应用程序使用javascript lib时,这非常棘手。

我能够通过在超时函数中调用api来完成它。

$timeout(function(){
    $scope.gridOptions.api.setColumnDefs(masterColumnDefs);
}, 0);

如果您在 $ scope.gridOptions.api.setColumnDefs(masterColumnDefs); 上方打印 $ scope.gridOptions 而没有超时功能,请注意该对象是没有api或columnApi键。

但是当你把

包起来的时候
  

$ scope.gridOptions.api.setColumnDefs(masterColumnDefs);

使用超时功能然后在控制台中,您可以使用api和columnApi查看对象,所以现在它将使用您拥有的值更新gridOptions。

据我所分析,这在ag-grid网站的任何地方都没有解释或记录。

希望这有帮助!