AngularJS:如何使用 ngResource 处理成功和错误回调?
Posted
技术标签:
【中文标题】AngularJS:如何使用 ngResource 处理成功和错误回调?【英文标题】:AngularJS: How to handle success and error call backs with ngResource? 【发布时间】:2013-05-10 20:38:53 【问题描述】:docs 对此一无所知。
我的REST
enpoint 可能会抛出错误
$scope.delete = function(index)
Transaction.delete(transactionId: $scope.transactions[index].uuid)
;
我把上面的改成下面的
$scope.delete = function(index)
Transaction.delete(transactionId: $scope.transactions[index].uuid)
.success('transaction deleted');
;
但是失败了
TypeError: Object #<Resource> has no method 'success'
at Object.TransactionController.$scope.delete (http://localhost:5000/static/app/js/controllers/transactionController.js:26:8)
at http://localhost:5000/static/app/lib/angular/angular.js:6094:36
如何处理success
和error
场景?
附:我是 javascript 新手
【问题讨论】:
尝试在delete
方法调用中添加回调函数,看看是否有效。
【参考方案1】:
传入成功和失败回调函数作为参数。
Transaction.delete(transactionId: $scope.transactions[index].uuid,
function(data)
// success
, function(e)
// failure
);
来自您链接的文档:
HTTP GET “类”操作:Resource.action([parameters], [success], [错误]) 非 GET “类”操作:Resource.action([parameters], postData, [成功], [错误])
【讨论】:
'e'的数据类型是什么?【参考方案2】:您可以根据您使用资源的方式(取自docs)使用以下格式向成功传递错误回调:
HTTP GET“类”操作:Resource.action([parameters], [success], [error]) 非 GET “类”操作:Resource.action([parameters], postData, [success], [error]) 非 GET 实例操作:instance.$action([parameters], [success], [error])
您的示例类似于 非获取“类”操作,看起来像这样:
Transaction.delete(transactionId: $scope.transactions[index].uuid,
function(successResult)
// do something on success
, function(errorResult)
// do something on error
if(errorResult.status === 404)
Here 是有关失败的 GET 资源的相关问题。
【讨论】:
以上是关于AngularJS:如何使用 ngResource 处理成功和错误回调?的主要内容,如果未能解决你的问题,请参考以下文章
使用 ngResource 在 AngularJS 中设置 enctype
[AngularJS] AngularJS系列 中级篇之ngResource
Angularjs ngResource 需要将文件作为字段之一