使UI Grid的ColumnsDefs动态

时间:2016-04-04 05:05:48

标签: javascript angularjs angularjs-scope

我有一个角度UI网格,我用它为我的报告填充数据。现在我有近20个报告,我想使用一个UI网格来填充所有报告的数据。 我基本上试图通过循环对象的属性来在运行时配置columnDefs属性。 这是我正在尝试的:

CrudService.GetData($scope.studyId, reportsTest).then(function (data) {
    $scope.getreportsdata = data;
    $scope.columns = [];
    for (var key in $scope.getreportsdata[0]) {
        if ($scope.getreportsdata[0].hasOwnProperty(key)) {
            if (!utilityExtensionService.isUndefinedOrNull($scope.getreportsdata[0][key]) && $scope.getreportsdata[0][key] != "")
                $scope.columns.push({ field: key, enableSorting: false, headerCellClass: 'ui-grid-header' });
        }
    }
});

这就是我如何配置我的UI网格:

$scope.gridOptions = {
            enableHorizontalScrollbar: 0,
            enableVerticalScrollbar: 0,
            enableSorting: true,
            columnDefs: 'columns',
            data: 'getreportsdata'}

但是我无法使用此方法进行绑定。你能否为此提出一些替代解决方案。

1 个答案:

答案 0 :(得分:1)

您配置网格的方式是错误的。

$scope.gridOptions = {
   enableHorizontalScrollbar: 0,
   enableVerticalScrollbar: 0,
   enableSorting: true,
   columnDefs: $scope.columns,
   data: $scope.getreportsdata
}

从下次开始,最好在plunkr链接上复制问题。