您好我正在使用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调用。
答案 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});