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
Ответы
Ответ 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])