В моем угловом приложении я обновляю задачу следующим образом
task.$update().then(function (task) {
// success
}, function (response) {
// failure
});
От бэкенда я получаю ответ 422
, но вызывается первый обратный вызов.
Мой ресурс выглядит так
angular.module('App')
.factory('Task', function ($resource) {
var resource = $resource('/admin/tasks/:id', { id: '@id' }, {
new: {
method: 'GET',
url: '/admin/tasks/new'
},
update: {
method: 'PUT'
},
...
});
return resource;
});
Вопрос в том, при каких обстоятельствах вызывается второй обратный вызов? И если нужно, что я могу сделать в методе update
, чтобы вызывался второй обратный вызов?
ОБНОВЛЕНИЕ: причина, по которой обратный вызов успеха вызывается все время, связана с перехватчиком ошибок, который у меня есть
angular
.module('App')
.factory('errorInterceptor', function ($location, $q, $rootScope) {
return {
responseError: function (response) {
if (response.config.url.match($location.$$host)) {
$rootScope.error = response;
return $q.reject(response);
}
return $q.when(response);
}
};
});
По-видимому, если вы сделаете return $q.when(response);
, вы скажете angular, что все в порядке, верно?