ich eine App mit einem Dienst haben, die meine API-Aufrufe Wraps:AngularJS UI-Router Handhabung 404s
var ConcernService = {
...
get: function (items_url, objId) {
var defer = $q.defer();
$http({method: 'GET',
url: api_url + items_url + objId}).
success(function (data, status, headers, config) {
defer.resolve(data);
}).error(function (data, status, headers, config) {
console.log('ConcernService.get status',status);
defer.reject(status);
});
return defer.promise;
},
und ich bin mit UI-Router zwischen den Staaten zu überführen:
concernsApp
.config(function ($stateProvider, $urlRouterProvider) {
$urlRouterProvider.otherwise("/404/");
$stateProvider.state('project', {
url: '/project/:projectId/',
resolve: {
project: function ($stateParams, ConcernService) {
return ConcernService.get('projects/', $stateParams.projectId);
},
},
views: {
...
}
});
I‘ Ich bin von der Verwendung des normalen AngularJS-Routers entfernt und habe Schwierigkeiten zu verstehen, wie man 404s implementiert. Ich kann die ConcernService
Status console.log
als abgelehnt, aber wie sehe ich das im Zustand Router?
Jede Hilfe sehr geschätzt.
Richtig, der Umgang mit dem 404 macht durchaus Sinn. Mit dem $ http allerdings, wenn ich es wie Sie implementieren, wenn nicht funktionieren wird, da 'objId' von '$ stateParams' kommt und noch nicht aufgelöst ist. Ist das nicht die Methode der "Aufschiebung"? –
Ich bin nicht wirklich sicher, was du meinst, aber wenn du '$ stateParams' in eine resolve- oder' onEnter'-Funktion injizierst, erhältst du eine lokale Kopie, die die Parameter für den Status darstellt, in den der Übergang stattfindet. –
@NateAbele Darf ich fragen, wie Sie $ State in den Event-Handler injiziert haben: $ stateChangeError? Da ich einen Fehler habe: 'undefined $ state' von deinem Beispiel. – Roylee