Winkel : Wie die Verwendung einer Lösung, die für alle Routen der mein Anwendung
Möchte ich lösen die Versprechen, die Last, die der aktuelle Benutzer für alle die Seite von meiner Anwendung.
Jetzt wiederhole ich die lösen in jedem $routeProvider.wenn() meiner Strecken.
$routeProvider.when('/users/edit/:userId', {
templateUrl: 'app/app/assets/partials/user-edit.html',
controller: 'UserEditController',
resolve:{
'currentUser':function( UserService){
return UserService.getCurrentUser();
}
}
});
$routeProvider.when('/staff_profil/edit', {
templateUrl: 'app/app/assets/partials/profil-edit.html',
controller: 'ProfilEditController',
resolve:{
'currentUser':function( UserService){
return UserService.getCurrentUser();
}
}
});
Mein Ziel ist es zu beheben meine aktuellen Benutzer für alle Routen ohne Wiederholung.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Konnte man immer wickeln Sie die bestehenden, wenn Methode auf die
$routeProvider
durch Ihre eigene Implementierung.Werden Sie wahrscheinlich wollen, um einige Fehler zu überprüfen, und verwenden Sie so etwas wie Unterstrichen
defaults
Methode, anstatt nur überschreiben der bestehenden beheben Eigentum, aber zumindest diese Weise können Sie garantieren, dass alle Ihre Routen haben, was Sie wollen.Es ist auch leicht genug, um wrap up in ein-Helfer-Methode.
Error: [$injector:modulerr] Failed to instantiate module ... due to: $routeProvider.when(...) is undefined
selbst wenn die ganze Methode überschreiben tut, istreturn originalWhen(path, route);
Stattdessen habe ich angehängt, eine neue Methode,$routeProvider.accessWhen
, diereturn $routeProvider.when(path, route);
, und rufen Sie.accessWhen
statt.when
in meiner Strecken-setup.Vollständigkeit halber, hier die komplette Lösung, mit eckigen statt Unterstrich, mit einem verkettbare 'wenn'. Nichts neues in diesem code, nur kombiniert eine Reihe von den oben genannten Antworten.
.call
Den @Josh Antwort richtig ist, außer Sie berufen originalWhen anders funktionieren:
Beide @N13 und konnte ich nicht machen, @Josh ' s Lösung Arbeit. Aber das hat Arbeit für mich:
Verwendung mit:
Fand ich, dass dieser Fall viel besser:
_.merge()
.Für die Menschen, die stecken mit der alten code-Basen.