Ich stelle Anfragen an meine API und verwende das AngularJS $ -Ressourcenmodul. Es unterscheidet sich von $ http, daher weiß ich nicht, wie ich mit meinen Fehlern umgehen soll.
Mein Service:
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,
}
});
}]);
Mein Controller:
...
Category.query(function(data) {
console.log(data);
});
...
Ich möchte so etwas oder ... Ich weiß nicht, wie ich mit Fehlern umgehen kann, wenn meine API nicht funktioniert.
Category.query().success(function() {
console.log('success');
}).error(function() {
console.log('error');
});
angularjs
angular-resource
valkirilov
quelle
quelle
Resource.query().$promise.then(function(data) {}, errorFunction)
. Sie müssen es immer noch an jeder Stelle einfügen, an der Sie eine Abfrage verwenden, aber zumindest werden Sie es nicht jedes Mal neu definieren.myResource.$save
undmyResource.$delete
ist das Versprechen. Also kannst du es einfach tunmyResource.$save().then(...)
.Sie können einen Fehlerbehandler im Erstellungsschritt der Ressource definieren, indem Sie
interceptor
in der Beschreibung einer Methode ein Objekt mit einerresponseError
Eigenschaft hinzufügen , die mit Ihrer Fehlerfunktion verknüpft ist.Dabei
resourceErrorHandler
wird bei jedem Fehler beim Abrufen oder Abfragen eine Funktion aufgerufen. Für das gestellte Problem wird nur die Methode get benötigt. Natürlich können Sie das auf jede Aktion anwenden.Es gibt einen anderen Interceptor
response
für $ resource, um eine normale Antwort zu erhalten.Interceptors sind Teil des
$http
Moduls. Weitere Informationen hierzu finden Sie in den Dokumenten .quelle
Hier ist ein neues ES6-Beispiel (ich verwende TypeScript) für meine ng.resource
und dann wird in meinem Controller 'Detail', das in den Controller injiziert wird, entweder in die Daten (gut) oder falsch für Fehler aufgelöst, wo ich die Anzeige von 404 behandle.
quelle