In meiner Webanwendung möchte ich überprüfen, ob der Benutzer die Berechtigung zum Fortfahren hat.Winkelfunktion verwendet keine explizite Anmerkung und kann nicht im strikten Modus aufgerufen werden
Dies ist die .run Methode in meiner index.js Datei:
.run(function (event, toState, toParams, fromState, $window) {
$rootScope.$on('$stateChangeStart', function(event, toState, toParams, fromState, $window) {
if (Auth.isLoggedIn && $window.localStorage.identityToken) {
var requiredAdmin = toState.data.requiredAdmin;
if (requiredAdmin && $window.localStorage.isAdmin){
$state.go(toState.name);
} else {
$state.go(fromState.name);
}
var shouldGoToMain = fromState.name === 'login' && toState.name !== 'app.dashboard' ;
if (shouldGoToMain){
$state.go('app.dashboard');
event.preventDefault();
} else {
$state.go(toState.name);
}
return;
} else {
$state.go('login');
return;
}
// unmanaged
});
});
Die Konsole Fehler ist: Uncaught Error: [$injector:strictdi] function(event, toState, toParams, fromState, $window) is not using explicit annotation and cannot be invoked in strict mode
Es funktioniert, aber Konsole gibt mir diesen Fehler: $ state.go ist keine Funktion. Warum? (Ich habe auch zwei Abhängigkeiten zu Ihrem Code hinzugefügt: .run (['$ rootScope', '$ window', Funktion ($ rootScope, $ window) { $ rootScope. $ On ('$ stateChangeStart', Funktion (event , toState, toParams, fromState, Auth, $ state)) – panagulis72
Sie wiederholen den gleichen Fehler noch einmal.Die Methode, die an $ on übergeben wird, stellt KEINE injizierbare Funktion dar. Das Übergeben von Auth und $ state an diese Funktion macht überhaupt keinen Sinn. Diese Dienste sollten in die Funktion injiziert werden, die an run() übergeben wird (und ihr Name sollte daher ebenfalls zum Array hinzugefügt werden). –
Fertig! Aber ich habe einen seltsamen lokalen Fehler ... wenn es zu sonst geht {$ state.go ('login');} Es kehrt zu if (Auth.isLoggedIn && $ window.localStorage.identityToken) zurück, geht dann zu $ state.go ('login') und kehrt in if (Auth ....) zurück und setzt die Verbindung fort Browser-Absturz ... Wenn Sie möchten, habe ich den gesamten Code hier: http://stackoverflow.com/questions/36677234/statechange-causes-inspected-target-crash-in-angular – panagulis72