2016-06-13 6 views
4

Ich versuche, Spalten dynamisch zu den ui-grid hinzufügen und auch die Daten zuweisen. Das erste Mal funktioniert das Raster gut. Aber wenn ich versuche, die Spalten und Daten dynamisch zu ändern, funktioniert es nicht wie erwartet.angularjs UI Grid - zuweisen Sie Spalten und Daten dynamisch

$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(); 
}; 

überprüfen Sie bitte die plunkr

jemand in dieser Ausgabe schauen und mir vorschlagen, wie dies zu tun?

Antwort

3

Ich glaube, Sie den Code entfernen: $scope.gridOptions = {};

die neueste plunker

die zweite data1 sollte in den ersten data

geschoben werden habe ich die Plunker mit den neuesten Code geändert, pls Überprüfung es!

$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(); 
    }; 

wenn Sie die alten Spalten entfernen möchten, würden Sie

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

verwenden und dann Daten aktualisieren mit:

$scope.gridOptions.data = data1; 

$scope.gridApi.grid.refresh(); 
+0

Dank für das Update. aber, ich möchte alte Spalten und Daten entfernen, sobald ich auf Knopf Aktion klicken. Kannst du mir bitte dabei helfen? – NewBuddy

+0

Ich habe den Plunker und den obigen Code aktualisiert, Sie können $ scope.gridOptions.columnDefs = new Array(); und dann $ scope.gridOptions.data = data1; –

+0

hilft es Ihnen, diese Frage zu lösen? –

Verwandte Themen