Подтвердить что ты не робот

AngularJS: Как обрабатывать успешные и ошибочные обратные вызовы с помощью ngResource?

docs не дает никакого представления об этом.

My 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?

P.S. Я новичок в JavaScript

4b9b3361

Ответ 1

Вы можете успешно выполнить обратный вызов ошибки, используя следующие форматы, в зависимости от того, как вы используете ресурс (взятый из docs):

  • HTTP GET "class" actions: Resource.action([параметры], [успех], [ошибка])
  • действия класса "не-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) {            
        }
    }

Здесь - это связанный с этим вопрос, связанный с сбоем ресурса GET.

Ответ 2

Передайте функции успешного выполнения и сбоя в качестве аргументов.

Transaction.delete({transactionId: $scope.transactions[index].uuid}, 
                   function(data) {
                      // success
                   }, function(e) {
                      // failure
                   });

Из документов, которые вы связали:

HTTP GET "class" actions: Resource.action([параметры], [успех], [Ошибка])
не-GET-действия класса: Resource.action([параметры], postData, [success], [error])