Javascript 角网格数据表示

Javascript 角网格数据表示,javascript,angularjs,ng-grid,plunker,Javascript,Angularjs,Ng Grid,Plunker,我刚接触Angular,我对Javascript的经验不是很丰富。我无法使用以下代码在ngGrid中显示数据。有什么问题 本质上。我正在从web服务加载数据,对其执行转换透视,然后我希望将其显示在网格中 请参见以下内容 app.js->开始点 var konstruktApp= angular.module('konstruktApp',['ngGrid']); dataService.js->web服务调用 'use strict'; konstruktApp.service('Data

我刚接触Angular,我对Javascript的经验不是很丰富。我无法使用以下代码在ngGrid中显示数据。有什么问题

本质上。我正在从web服务加载数据,对其执行转换透视,然后我希望将其显示在网格中

请参见以下内容

app.js->开始点

var konstruktApp= angular.module('konstruktApp',['ngGrid']);  
dataService.js->web服务调用

'use strict';
konstruktApp.service('DataService',function DataService($http){
   var callHttp = function(){
     delete $http.defaults.headers.common['X-Requested-With'];
       return $http.get("http://83.250.197.214/konstrukt.service/Konstrukt.SL.DummyBudgetService.svc/GetDummyBudgetData/");
   };
    return {
        getDummyData: callHttp
    };
});
ngGridController.js->逻辑所在的位置

$scope.getData = DataService.getDummyData;
$scope.gridOptions = {data:'result'};
var getData = function() {
    $scope.getData().then(function (response) {
        var res = pivotData(response.data);
        $scope.result = res.data.PivotedRows;

        $scope.columns = res.cols;

        console.log('from the success handler at ' + new Date());
    }, function (reason) {
        console.log('failed: ');
        console.log(reason);
    });

};
…这是数据透视的逻辑

var pivotData = function(data) {
  var firstColumn = "Dim1";
  var secondColumn = "Period";

  var columns = [];
  columns.push({
    field: firstColumn,
    enableCellEdit: false
  });


  var pivotedArray = {};

  pivotedArray.PivotedRows = [];
  var rowItems = [];
  var rowArray = {};

  var previusFirstColumnValue = -1;
  var firstColumnValue = 1;

  //for each row
  for (var i = 0; i < data.Rows.length; i = i + 1) {
    //firstColumnValue = $scope.dataCollection.Rows[i].FindCell.Cells[firstColumn].Value;
    firstColumnValue = findCell(data.Rows[i].Cells, firstColumn).Value;

    //var secondColumnValue = data.Rows[i].Cells[secondColumn].Value;
    var secondColumnValue = findCell(data.Rows[i].Cells, secondColumn).Value;
    //if first column value has changed, add new row
    if (firstColumnValue != previusFirstColumnValue) {

      if (i !== 0) {
        for (var j = 0; j < rowItems.length; j = j + 1) {
          rowArray[rowItems[j].name] = rowItems[j].value;
        }
        pivotedArray.PivotedRows.push( rowArray);
        rowArray = {};
        rowItems = [];
      }

      rowItems.push({
        name: firstColumn,
        //value: $scope.dataCollection.Rows[i].Cells[firstColumn].Value
        value: findCell(data.Rows[i].Cells, firstColumn).Value
      });
    }

    //if (columns.indexOf({field: secondColumnValue}) == -1) {
    if (i < 12) {
      columns.push({
        field: secondColumnValue,
        editableCellTemplate: "<input ng-class=\"'colt' + col.index\" ng-input=\"COL_FIELD\" ng-blur=\"lostFocus()\" ng-model=\"COL_FIELD\" ng-change=\"dataChanged(col,row,row.entity)\"/>",
        enableCellEdit: true
      });
    }

    rowItems.push({
      name: secondColumnValue,
      value: findCell(data.Rows[i].Cells, secondColumn).Value
    });
    previusFirstColumnValue = firstColumnValue;
  }


  for (var k = 0; k < rowItems.length; k = k + 1) {
    rowArray[rowItems[k].name] = rowItems[k].value;
  }

 // $scope.columns = columns;

  pivotedArray.PivotedRows.push( rowArray);

  return {data: pivotedArray, cols: columns};
};
plnkr:


编辑:数据关联行列是正确的,我怀疑pivotedArray.PivotedRows数组中的数据有问题。

结果是,将代码移动到新的plnkr导致了差异。现在,这是我生命中的几个小时,我想要回来:

首先,你得到数据了吗?你有没有试着看看你从Fiddlerhi那里得到了什么?是的,我得到了数据。看起来不错。我在chrome中调试了plnkr代码,并验证了。。。所以在转换过程中出现了一些问题,但是我正确地转换了数据,但是可能我的一些数据类型不适合与ngGrid一起使用!?修正了你的plnkr数据现在显示这不是我的日子。改用。显然,我也必须分叉…我把代码移到了一个新的plnkr,然后它工作了。。。