如何使用AngularJS动态传递ng-grid的列字段

时间:2014-07-02 07:25:03

标签: angularjs

我正在使用AngularJS的ng-grid,下面是我的指令中的代码:

$scope.gridOptions = {
                data : 'sample',
                columnDefs : [ {
                    field : "username",
                    displayName : "USER NAME",
                    width : 145
                }, {
                    field : "password",
                    displayName : "Password",
                    width : 145
                }],

而不是硬编码我希望从控制器动态显示它们的网格的显示名称。我将结果存储在控制器中的变量中,因此我想将此变量传递回指令并显示结果变量中的列名。我可以使用rootScope将值从指令传递给控制器​​所以有什么办法将值传递回控制器的指令。 请建议我如何做到这一点。

1 个答案:

答案 0 :(得分:0)

您可以从基础数据源构建ColDefs [],该数据源可以提供数据以进行绑定

  

$ scope.griddata = response.data //这是分配数据的地方   $ scope.gridoptions = {                       数据:griddata,                       columnDefs:coldef,// coldef我们将从datasource对象构建                       。                       。                        }

从$ scope.gridata,我们将提取所有列信息,并将其分配给$ scope.coldef,该范围绑定到columndefinition

  

var fieldnames = Object.key($ scope.griddata [0]); //从json数据中获取列def   for(var i = 0; i< fieldnames.length; i ++){
                 $ scope.coldef.push({field:fieldnames [i]});
            }

现在ColDef是基于分配的数据源

的动态和构建