2013-05-16 6 views
22

The docs nie daje o tym pojęcia.AngularJS: Jak radzić sobie z odwołaniami do sukcesu i błędów za pomocą ngResource?

Moja REST enpoint może rzucać błąd

$scope.delete = function(index) { 
    Transaction.delete({transactionId: $scope.transactions[index].uuid})  
    }; 

Zmieniłem powyższe do następujących

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

Ale to nie

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 

Jak mogę obsługiwać success i error scenariusze?

P.S. Jestem nowicjuszem w JavaScript

+0

spróbuj dodać funkcję zwrotną do wywołania metody "delete" i sprawdź, czy działa. – akonsu

Odpowiedz

33

można przekazać w sukces wywołania zwrotnego o błędzie przy użyciu następujących formatów w zależności od sposobu korzystania z zasobów (zaczerpnięte z docs):

  • HTTP GET "klasa" działania: Resource.action ([parameters], [sukces], [Błąd])
  • non-get "klasa" działania: zasobu. akcja ([parametry], postData [sukces], [błąd])
  • non-GET instancji. instancja $ action ([parameters], [sukces], [błąd])

Twój przykład jest podobny do dostać „klasa” działania i będzie wyglądać mniej więcej tak:

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

Here jest powiązany pytanie o nieudanej zasobu GET.

4

Przekaż pomyślne i niepowodzenie funkcje oddzwaniania jako argumenty.

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

Od docs Ci powiązać

HTTP GET "klasa" działania: Klasa Resource.action ([parametry], [sukces] [Błąd])
non-GET” "działania: Resource.action ([parametry], postData [sukces], [błąd])

+0

jaki jest typ danych "e"? – OMGPOP

+0

@ OMGPOP: to obiekt zawierający informacje o błędach – Envil