Angulajs Ui-Grid从数据库中删除行

时间:2016-05-17 15:38:26

标签: angularjs

您好我正在使用Angularjs和Ui-grid开发一个小应用程序。在其中一个页面上,我显示了从一个表到Ui-grid的所有行。在网格的最后一列,我保留一个删除按钮来删除该行。

以下是数据绑定的代码

scope.loadGrid = function() 

  var http = $resource(baseURL + '/api/AllInvoices', {/* No paramter */}, 
                            {'get' : {method : 'GET', isArray : true, cache : false, 
                                            timeout : 500, showSpinner : true}});

  $scope.gridOptions = {enableColumnMenus: false};
  $scope.gridOptions.columnDefs = [
       { name: '', field: 'Check', cellTemplate: '<md-checkbox aria-label="Checkbox 1"></md-checkbox>'},
       { field: 'InvoiceNumber', cellClass: 'address' },
       { name: 'Date', field: 'InvoiceDate'},
       { field: 'Status'},
       { field: 'Amount' },
       { name: 'Location From', field: 'LocationFrom'},
       { name: 'Location To', field: 'LocationTo'},
       { field: 'Action', cellTemplate: '<img src="svg/delete.png" alt="Description" ng-click="grid.appScope.Delete(row)"/>'},
     ];


   http.get().$promise.then(function (data) {
         $scope.gridOptions.data =  data;
    }, function (reason) {
           alert (reason);
      });
 }

删除方法

$scope.Delete = function(row) {
        var index = $scope.gridOptions.data.indexOf(row.entity);
        $scope.gridOptions.data.splice(index, 1);
    };

有人可以建议我如何从每一行获取唯一值并传递值以删除web api调用。

1 个答案:

答案 0 :(得分:0)

必须以艰难的方式做到这一点。在文档中不是一件事。我使用vm作为控制器,所以我的行按钮是

 ng-click="grid.appScope.vm.confirmDelete(row)"

然后在控制器寄存器gridApi

onRegisterApi: function (api) {
        gridApi = api;
    }

然后我必须找到一种方法来实现。

vm.confirmDelete = function (row) {
var orgID = 0;
for (var i = 0; i < gridApi.grid.rows.length; i++){ for (var j = 0; j < row.grid.rows.length; j++){ if (gridApi.grid.rows[i].GridRow == row.grid.rows[j].GridRow) { orgID = row.entity.neighborhoodOrganizationID; } } } var data = $.param({ id: orgID});

相关问题