AngularJS:如何使用ngResource处理成功和错误回调?

day*_*mer 22 javascript angularjs angularjs-service

文档没有给出任何关于它的想法.

我的REST观点可能会引发错误

$scope.delete = function(index) {
    Transaction.delete({transactionId: $scope.transactions[index].uuid})     
  };
Run Code Online (Sandbox Code Playgroud)

我把上面改为以下

$scope.delete = function(index) {
    Transaction.delete({transactionId: $scope.transactions[index].uuid})
      .success('transaction deleted');
  };
Run Code Online (Sandbox Code Playgroud)

但它失败了

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
Run Code Online (Sandbox Code Playgroud)

我该如何处理successerror场景?

PS我是JavaScript的新手

Glo*_*opy 33

您可以使用以下格式成功传递错误回调,具体取决于您使用资源的方式(取自文档):

  • HTTP GET"类"操作:Resource.action([parameters],[success],[error])
  • 非GET"类"操作:Resource.action([parameters],postData,[success],[error])
  • 非GET实例操作:实例.$ action([参数],[成功],[错误])

您的示例类似于非获取"类"操作,看起来像这样:

Transaction.delete({transactionId: $scope.transactions[index].uuid}, 
    function(successResult) {
        // do something on success
    }, function(errorResult) {
        // do something on error
        if(errorResult.status === 404) {            
        }
    }
Run Code Online (Sandbox Code Playgroud)

以下是有关失败的GET资源的相关问题.