0

我正在研究 ui 网格编辑单元格功能。我需要将编辑后的单元格值更新到数据库中。我怎么能这样做。我正在使用 rest 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

4

1 回答 1

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;
    };
于 2015-06-23T21:12:07.843 回答