我正在使用AngularJS $resource
来列出,创建和更新资源,它运行正常。例如:
getFoo = (fooId) => {
const Foo = $resource("api/foos/:fooId);
return Foo.get({fooId});
};
这将返回Foo
个实例,其中Foo.$promise
我可以用来查看请求何时完成。
但如果我想删除Foo怎么办?
deleteFoo = (fooId) => {
const Foo = $resource("api/foos/:fooId);
return Foo.delete({fooId});
};
我能找到的所有例子都显示Foo.delete({fooId})
,但从不告诉它返回什么。如何才能知道删除成功的承诺?
Foo.delete({fooId})
Foo
$ {}返回Foo.$promise
$资源get()
,就像$promise
一样?但是,拥有我刚刚删除的东西的资源会很奇怪。它会返回$http
本身吗?它是否返回基础Foo.delete({fooId})
对象?
简而言之,我怎样才能从{{1}}获得承诺,知道删除何时成功?
答案 0 :(得分:0)
类对象或实例对象上的操作方法可以是 使用以下参数调用:
"class" actions without a body: Resource.action([parameters], [success], [error]) "class" actions with a body: Resource.action([parameters], postData, [success], [error]) instance actions: instance.$action([parameters], [success], [error])
删除操作是没有正文的操作,因此如果您想要验证删除是否成功,那么您需要通过操作发送成功和错误。
以下是使用实体ID的示例:
var entityResource = $resource('/api/:entityType/:entityId',
{type:'@entityType', id: '@entityId'});
entityResource.delete({type: $scope.entityType, id: entityId}, success, failed);
您的成功或失败将如下所示:
var success = function (result) {
$scope.remove($scope.table.data, idColumn, entityId);
};
var failed = function (result) {
alert("You action has failed with: " + result);