2017-07-18 38 views
0

我的陣列是這樣如何在擴張網格設置子網格數據

$scope.ebObjArr = [{key: 'val', monthsArray: [{myDate:'',}]},{myDate:'',}]

monthArray用於填充的子網格。我無法弄清楚如何爲子網格設置數據。

我嘗試這樣做:

for (let i = 0; i < $scope.ebObjArr.length; i++) { 
    $scope.ebObjArr.monthsArray[i].subGridOptions = { 
     columnDefs: [{ name: "Month", field: "myDate" }, { name: "Cost", field: "totalCost" }, {name:"Units consumed", field : "unitsConsumed"}], 
     data: $scope.ebObjArr[i].monthsArray 
    } 
} 

我嘗試這樣做太:

爲(令i = 0;我< $ scope.ebObjArr.length;我++){

   for (let j = 0; j < $scope.ebObjArr[i].monthsArray[j].length; j++) { 
        $scope.ebObjArr[i].monthsArray[j].subGridOptions = { 
         columnDefs: [{ name: "Month", field: "myDate" }, { name: "Cost", field: "totalCost" }, { name: "Units consumed", field: "unitsConsumed" }], 
         data: $scope.ebObjArr[i].monthsArray[j] 
        } 
       } 


      } 

在此示例中,我僅使用MainCtrlhttp://ui-grid.info/docs/#/tutorial/216_expandable_grid

回答

0

我敢肯定有更好的方法來做到這一點,但由於沒有人回答我做到了這一點,它的工作。

 onRegisterApi: function (gridApi) { 
     $scope.grid1Api = gridApi; 
     $scope.grid1Api.expandable.on.rowExpandedStateChanged($scope, function (row) { 
      if (row.isExpanded) { 
       console.log(row.entity); 
       row.entity.subGridOptions = { 
        columnDefs: [{ name: "Month", field: "myDate" }, { name: "Cost", field: "totalCost" }, { name: "Units consumed", field: "unitsConsumed" }], 
       } 
       row.entity.subGridOptions.data = (function() { 
        var a; 

         a = $scope.ebObjArr.filter(function (val) { 
          if (val.ebName === row.entity.ebName && val.ebAddress === row.entity.ebAddress) { 
           // console.log(val.monthsArray); 
           return val.monthsArray 
          } 
          return false; 
         }); 
         console.log(a); 
        console.log(a[0].monthsArray); 
        return a[0].monthsArray; 
       })(); 
       console.log(row.entity.subGridOptions.data); 
      } 

     }); 
    } 
相關問題