2017-02-28 2 views
0

J'ai une situation dans laquelle je crée gridOption avec in for loop et également bind onRegisterApi pour le même. Mais la variable de boucle dans la méthode onRegisterApi va au-delà de la variable de boucle. extrait de code sera comme:Liaison onRegisterApi pour gridOption dans la boucle for angularJS UI

for(var k=0; k<3; k++){ 
$scope.gridOptions[k] = { 
     data : $scope.gridData[k], 
     enableCellEditOnFocus : true, 
     columnDefs : $scope.colmDef[k], 
     onRegisterApi : function(gridApi){ 
      console.log(k) // here value of k is always 2. 
      $scope.gridApi[k] = gridApi; 
      console.log(k) // here value of k is always 3. 
      $scope.gridApi[k].edit.on.afterCellEdit($scope, function(rowEntity, colDef, newValue, oldValue){ 
        console.log(k) // here value of k is always 3. 
        /* I want to handle celledit of specific grid from gridApi. But this is not working as the variable 'k' doesn't change according to loop and it will be fixed always.*/ 
      }) 
     } 

    } 

} 

Je veux assigner onRegisterApi en boucle pour les gridOptions. Aidez-moi avec ce scénario s'il vous plaît.

Répondre

0

Je pourrais résoudre ceci finalement. J'ai fait des changements comme:

for(var k=0; k<3; k++){ 
$scope.gridOptions[k] = { 
     data : $scope.gridData[k], 
     enableCellEditOnFocus : true, 
     columnDefs : $scope.colmDef[k], 
     customStoredVar : k, 
     onRegisterApi : function(gridApi){ 
      var gridRef = this; 
      gridApi.edit.on.afterCellEdit($scope, function(rowEntity, colDef, newValue, oldValue){ 
        var gridArrayRefVar = gridRef.customStoredVar; //this contains respective grid array value. So this value can be used for array ref 
      }) 
     } 
    } 
}