2014-12-25 30 views
0

我正在使用UI网格编辑单元格功能。我需要将编辑的单元格值更新到数据库。我怎么能这样做。我使用rest api作为后端。 还我该如何行的控制器
我的工作代码在UI网格中使用后端休息API保存更新的数据编辑单元格功能

var app = angular.module('app', ['ngTouch', 'ui.grid', 'ui.grid.edit']); 

app.controller('MainCtrl', ['$scope', '$http', function ($scope, $http) { 
    $scope.gridOptions = { }; 

    $scope.gridOptions.columnDefs = [ 
    { name: 'id', enableCellEdit: false}, 
    { name: 'name' }, 
    { name: 'age', displayName: 'Age' , type: 'number', width: '10%' } 
    ]; 


    $http.get('https://cdn.rawgit.com/angular-ui/ui-grid.info/gh-pages/data/500_complex.json') 
    .success(function(data) { 
     $scope.gridOptions.data = data; 
    }); 
}]) 

http://plnkr.co/edit/kAQnXGTn12Z7v8w16RL9?p=preview

回答

2

有被需要的几件事选择的列表。 这将用于保存对数据库的单元格更改。 我不确定如何获取选定行的列表。

在$ scope.gridOptions包括:

onRegisterApi: function(gridApi){ 
     //set gridApi on scope 
     $scope.gridApi = gridApi; 
     gridApi.rowEdit.on.saveRow($scope, $scope.saveRow); 
    }, 

接下来在你的控制器包括saveRow和saveRowFunction:

$scope.saveRow = function(rowEntity) { 

var promise = $scope.saveRowFunction(rowEntity); 
     $scope.gridApi.rowEdit.setSavePromise(rowEntity, promise); 
    }; 

$scope.saveRowFunction = function(row) { 
     var deferred = $q.defer(); 
     if (row.id == undefined){ 
      $http.post('http://your/api/address/', row).success(deferred.resolve).error(deferred.reject); 

     }else{ 
      //console.log("10 put ID: " + row.id); 
      $http.put('http://your/api/address/' + row.id, row).success(deferred.resolve).error(deferred.reject); 
     } 
     return deferred.promise; 
    }; 
相关问题