Estoy tratando de agregar columnas de forma dinámica a la ui-grid y también la asignación de los datos. Primera vez, la red está funcionando bien. Pero, cuando trato de cambiar las columnas y los datos de forma dinámica, que no está funcionando como se esperaba.

$scope.myfunc = function() {

alert("Rebinding the data");
$scope.gridOptions = {};

$scope.gridOptions.columnDefs.push({
 name: 'firstName'
  });
  $scope.gridOptions.columnDefs.push({
 name: 'lastName'
  });
  $scope.gridOptions.columnDefs.push({
 name: 'company'
  });
  $scope.gridOptions.columnDefs.push({
 name: 'employed'
  });

  alert("added new columns");
  $scope.gridOptions.data = data1;

  $scope.gridApi.grid.refresh();
};

por favor, compruebe la plunkr

¿Alguien puede mirar en este tema y me sugieren cómo hacerlo?

InformationsquelleAutor NewBuddy | 2016-06-13

1 Comentario

  1. 6

    creo que se puede quitar el código: $scope.gridOptions = {};

    la última plunker

    la segunda data1 debe ser empujado en el primer data

    He cambiado el plunker con el último código, pls check it!

     $scope.myfunc = function()
      {
    
        alert("Rebinding the data");
         $scope.gridOptions.columnDefs = new Array();
    
        $scope.gridOptions.columnDefs.push({
         field: 'firstName'
          });
          $scope.gridOptions.columnDefs.push({
         field: 'lastName'
          });
          $scope.gridOptions.columnDefs.push({
         field: 'company'
          });
          $scope.gridOptions.columnDefs.push({
         field: 'employed'
          });
    
          alert("added new columns");
          $scope.gridOptions.data = data1;
    
         /* for(var i=0; i<$scope.gridOptions.data.length; i++){
            $scope.gridOptions.data[i].firstName = data1[i].firstName;
            $scope.gridOptions.data[i].lastName = data1[i].lastName;
            $scope.gridOptions.data[i].company = data1[i].company;
            $scope.gridOptions.data[i].employed = data1[i].employed;
          } */
    
    
          $scope.gridApi.grid.refresh();
      };
    

    si quieres quitar las viejas columnas, utilice

    $scope.gridOptions.columnDefs = new Array();

    y, a continuación, actualizar los datos mediante:

    $scope.gridOptions.data = data1;
    
    $scope.gridApi.grid.refresh();
    
    • gracias por la actualización. pero, quiero quitar el viejo y columnas de datos una vez que haga clic en volver a enlazar el botón de acción. Me pueden ayudar en esto por favor?
    • he actualizado el plunker y el código de arriba, puede utilizar los $scope.gridOptions.columnDefs = new Array(); y, a continuación, utilice $scope.gridOptions.datos = data1;
    • ¿ayudará a resolver esta pregunta?
    • gracias de Vino; se resuelve mi problema de la re-asignación de re-unión de las columnas de forma dinámica.

Dejar respuesta

Please enter your comment!
Please enter your name here