如何在使用ng-grid和AngularJS时使用rowId发送DELETE Http Verb?

kalias 发布于 2019-03-09 angularjs 最后更新 2019-03-09 14:33 0 浏览

我已经设置了以下资源,功能和单元格模板:

var Exam = $resource('/api/Tests', {}, {
    saveData: { method: 'PUT' }
});
$scope.delete = function (row) {
    row.entity.$delete(row.examId);
}
$scope.updateEntity = function (column, row) {
    console.log(row.entity);
    console.log(column.field);
    row.entity.$saveData();
}
{ field: '', cellTemplate: '<button ng-click="delete(row)">Delete</button>' }
但是我发现它只是发送:
   DELETE /api/Tests HTTP/1.1
有没有一种方法可以更改资源,以便行testId等于一个,然后正确发送
   DELETE /api/Tests/1
请注意,我已经尝试了以下操作,但它仍将相同的URL发送到我的服务器:
   row.entity.$delete(row.entity.testId)
还有一件事。我的updateEntity工作并发送一个放在一起的json行
已邀请:

ket

赞同来自:

您可以更改资源的URL,如下所示:

var Exam = $resource('api/Tests/:id, {id:'default value here'});
Exam.$delete({id:1});
或者重新定义删除操作:
var Exam = $resource('api/Tests, {}, {
    $delete: {
        method: 'DELETE',
        params: {id: 'some value here'}
    }
});
看看这个类似的问题:https://stackoverflow.com/a/13275194/1036025