json - AngularJS 中带有 JSON 数据的动态 ng-Grid?

标签 json angularjs ng-grid

我想创建一个动态 ng-grid ,它根据 JSON 对象中的键值调整其列。 JSON 对象是从 api 获取的。我面临的问题是在运行时定义列,即这些列在设计时不可用,但仅在运行时可用。我想要这样的东西:

http://plnkr.co/edit/q1Ye10OsIn9NOJmrICyD?p=preview

因此,我的 Json 对象中的列数与键数一样多。 API 可能会有所不同,因此我需要制作一个可以调整其列的网格。

我的插件不起作用,但我希望它能让你知道我正在尝试做什么。

最佳答案

除非我误解了您想要的内容,否则您不需要搞乱columnDefines。只要有这个:

faculty.controller('facultycontroller', function facultycontroller($scope, $http, $window){
    $scope.facdata = [];
    
    $scope.gridOptions = {
      data: 'facdata'
    };

    $http.get("http://mtapi.azurewebsites.net/api/institute").then(function (result) {
         $scope.facdata = result.data;
         console.log($scope.facdata[0]);
    });
});

将为 json 中的每个键创建一个包含一列的网格。

更新

如果您想过滤掉任何以“$”开头的列,您可以执行以下操作:

angular.forEach(result.data[0], function(value, key){
    if(key.indexOf('$') != 0)
        $scope.columnDefines.push({ field: key, displayName: key});
}); 

事实上,你已经很接近你想要做的事情了。您只需将columnDefines变量放在$scope上,并使用字符串将其分配给gridOptions,如下所示:

$scope.columnDefines = [];

$scope.gridOptions = {
  data: 'facdata',
  columnDefs: 'columnDefines'
};

Plunker

关于json - AngularJS 中带有 JSON 数据的动态 ng-Grid?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23969087/

相关文章:

javascript - 为什么这个作用域属性在链接函数中不可用

javascript - 将多个 Angular ng-grid 导出到 Excel 文件?

javascript - 在 ui-grid editableCellTemplate [ng-grid 3.x] 中使用 ng-option 下拉菜单

javascript - 如何将 JSON 对象转换为数组数组

android - 使用 json 将一些数据从 android 发布并返回到 php 时出错

javascript - 通过将所有唯一键的值相加并转换为分隔字符串来组合 JSON 对象中的项目

javascript - 无法使用 Angular 编辑记录

angularjs - 我如何避免回调中的 $scope.$apply()

AngularJS ng-Grid 和 ngGridFlexibleHeightPlugin 没有按我的预期工作

java - 使用 Retrofit 处理不一致的 API 响应