2016-05-23 6 views
2

列を定義しました。私はグループを定義しましたが、リクエストからデータを取得しますが、グリッドの構築中にどこかで失敗します。ui-gridはデータを表示できません。b.forEachは関数ではありません。

$scope.gridOptions = { 
 
       enableFiltering: true, 
 
       treeRowHeaderAlwaysVisible: false, 
 
       columnDefs: [ 
 
        { name: 'suplierName', grouping: { groupPriority: 0 }, sort: { priority: 0, direction: 'desc' }, width: '30%', cellTemplate: '<div><div ng-if="!col.grouping || col.grouping.groupPriority === undefined || col.grouping.groupPriority === null || (row.groupHeader && col.grouping.groupPriority === row.treeLevel)" class="ui-grid-cell-contents" title="TOOLTIP">{{COL_FIELD CUSTOM_FILTERS}}</div></div>' }, 
 
        { name: 'InvoiceNumber', width: '25%' }, 
 
        { name: 'Description', width: '25%' }, 
 
        { name: 'InvoiceDate', width: '40%', cellFilter: 'date', type: 'date' }, 
 
        { name: 'CurrencyDate', width: '40%', cellFilter: 'date', type: 'date' }, 
 
        { name: 'InvoiceTotal', width: '25%', cellFilter: 'number', type: 'number'}, 
 
        { name: 'InvoiceNotPayed', width: '25%', cellFilter: 'number', type: 'number'}, 
 
        { name: 'TotalPayment', width: '25%', cellFilter: 'number', type: 'number'} 
 

 
       ], 
 
       onRegisterApi: function(gridApi) { 
 
        $scope.gridApi = gridApi; 
 
       } 
 
      }; 
 

 

 

 
      $scope.gridOptions = { 
 
      }; 
 

 
      $http.get('http://11.141.111.111/server/api/reports/unpayedInvoicesReport/organization/a255f922-6a4b-11e4-a7ff-53ee038745a3/fromAccount/62386806-fb07-4821-a83b-eab0cc987778/toAccount/62386806-fb07-4821-a83b-eab0cc987778?dateTo=31%2F01%2F2015') 
 
       .success(function(data) 
 
       { 
 

 
        console.log(data) 
 

 
        for (var i = 0; i < data.length; i++){ 
 
         //var registeredDate = new Date(data[i].registered); 
 
         data[i].suplierName = data[i].suplierName; 
 
         data[i].InvoiceNumber = Number(data[i].InvoiceNumber .slice(1).replace(/,/,'')); 
 
         data[i].Description = data[i].Opis; 
 
         data[i].InvoiceDate = $filter('date')(new Date(data[i].InvoiceDate), 'dd/MM/yyyy') 
 
         data[i].CurrencyDate = $filter('date')(new Date(data[i].CurrencyDate), 'dd/MM/yyyy') 
 
         data[i].InvoiceTotal = Number(data[i].InvoiceTotal.slice(1).replace(/,/,'')); 
 
         data[i].InvoiceNotPayed = Number(data[i].InvoiceNotPayed.slice(1).replace(/,/,'')); 
 
         data[i].TotalPayment = Number(data[i].TotalPayment.slice(1).replace(/,/,'')); 
 

 
        } 
 
        $scope.gridOptions.data = data; 
 

 
       }); 
 

 

 

 
      $scope.toggleRow = function(rowNum){ 
 
       $scope.gridApi.treeBase.toggleRowTreeState($scope.gridApi.grid.renderContainers.body.visibleRowCache[0]);   }; 
 

 
      $scope.changeGrouping = function() { 
 
       $scope.gridApi.grouping.clearGrouping(); 
 
       $scope.gridApi.grouping.groupColumn('age'); 
 
       $scope.gridApi.grouping.aggregateColumn('state', uiGridGroupingConstants.aggregation.COUNT); 
 
      }; 
 

 
      $scope.getAggregates = function() { 
 
       var aggregatesTree = []; 
 
       var gender 
 

 
       var recursiveExtract = function(treeChildren) { 
 
        return treeChildren.map(function(node) { 
 
         var newNode = {}; 
 
         angular.forEach(node.row.entity, function(attributeCol) { 
 
          if(typeof(attributeCol.groupVal) !== 'undefined') { 
 
           newNode.groupVal = attributeCol.groupVal; 
 
           newNode.aggVal = attributeCol.value; 
 
          } 
 
         }); 
 
         newNode.otherAggregations = node.aggregations.map(function(aggregation) { 
 
          return { colName: aggregation.col.name, value: aggregation.value, type: aggregation.type }; 
 
         }); 
 
         if(node.children) { 
 
          newNode.children = recursiveExtract(node.children); 
 
         } 
 
         return newNode; 
 
        }); 
 
       } 
 

 
       aggregatesTree = recursiveExtract($scope.gridApi.grid.treeBase.tree); 
 

 
       console.log(aggregatesTree); 
 
      }; 
 
     }])

私は、サーバーからのデータを得たが、その後、私は次のエラーました:

angular.js:11607 TypeError: b.forEach is not a function 
    at p.modifyRows (ui-grid.min.js:7) 
    at ui-grid.min.js:7 
    at processQueue (angular.js:13189) 
    at angular.js:13205 
    at Scope.$eval (angular.js:14401) 
    at Scope.$digest (angular.js:14217) 
    at Scope.$apply (angular.js:14506) 
    at done (angular.js:9659) 
    at completeRequest (angular.js:9849) 
    at XMLHttpRequest.requestLoaded (angular.js:9790) 

を私は角を持つ新しいので、私が得れば、それは良いでしょういくつかの提案:) 初めてUIグリッドを実装しようとすると、私は本当に私のプロジェクトでその機能が必要です:/ ありがとう!

+1

データを取得する直前に空のオブジェクトを '$ scope.gridOptions'に割り当てています –

答えて

1

コードスニペットからこの行(〜24,25)を削除する必要があります。

$scope.gridOptions = { 
}; 

すでに$ scope.gridOptionsが定義されていますので、これまでに設定されたものはすべて無効になりました。

関連する問題