2017-07-18 12 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] 
        } 
       } 


      } 

この例ではMainCtrlのみを使用しています:http://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); 
      } 

     }); 
    } 
関連する問題