angularjs UI网格 - 动态分配列和数据

New*_*ddy 4 angular-ui-grid

我正在尝试动态添加列ui-grid并分配数据.第一次,电网工作正常.但是,当我尝试动态更改列和数据时,它无法正常工作.

$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();
};
Run Code Online (Sandbox Code Playgroud)

请检查一下plunkr

任何人都可以调查这个问题并建议我如何做到这一点?

Jav*_*all 6

我想你可以删除代码: $scope.gridOptions = {};

最新的plunker

第二个data1应该被推到第一个data

我用最新的代码更改了plunker,请检查它!

 $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();
  };
Run Code Online (Sandbox Code Playgroud)

如果你想删除旧列,你会使用

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

然后使用以下方法刷新数据

$scope.gridOptions.data = data1;

$scope.gridApi.grid.refresh();
Run Code Online (Sandbox Code Playgroud)