Estoy haciendo solicitudes a mi API y estoy usando el módulo de recursos AngularJS $. Es diferente de $ http, así que no sé cómo manejar mis errores.
Mi servicio:
var appServices = angular.module('app.services', ['ngResource']);
appServices.factory('Category', ['$resource',
    function($resource){
        return $resource('/apicategoryerr/?format=:format', {}, {
            query: {
                method: 'GET', 
                params: { format: 'json'}, 
                isArray: true,
            }
        });
    }]);Mi controlador:
...
Category.query(function(data) {
                console.log(data);
            });
...Quiero algo como esto o ... No sé cómo manejar los errores si mi API no funciona ...
Category.query().success(function() {
                console.log('success');
            }).error(function() {
                console.log('error');
            });
                    
                        angularjs
                                angular-resource
                                
                    
                    
                        Valkirilov
fuente
                
                
            fuente

Resource.query().$promise.then(function(data) {}, errorFunction). Aún tendrá que incluirlo en cada lugar donde use una consulta, pero al menos no lo redefinirá cada vez.myResource.$saveymyResource.$deletees la promesa. Así que puedes hacerlomyResource.$save().then(...).Puede definir un controlador de errores en el paso de creación del recurso agregando un
interceptorobjeto en la descripción de un método, con unaresponseErrorpropiedad, vinculada a su función de error.donde
resourceErrorHandleres una función llamada en cada error en el método get o query. Para el problema planteado, el método get es el único necesario. Por supuesto, puede aplicar eso a cualquier acción.Existe otro interceptor
responsepara que $ resource capte una respuesta normal.Los interceptores son parte del
$httpmódulo, puede leer más sobre ellos en sus documentos .fuente
Aquí hay un nuevo ejemplo de ES6 (uso TypeScript) en mi ng.resource
y luego, en mi controlador, el 'detalle' inyectado en el controlador se resolverá en los datos (bueno) o falso para el error, donde manejo la pantalla de 404.
fuente