2016-07-19 5 views
1

Ich möchte überprüfen, um zu überprüfen, ob der Benutzer noch aktiv ist, wenn nicht ich es auf die Login-Seitewie für einen Zustand auf der gesamten AngularJS App

umleiten möchten

ich in einer Steuerung dieses Kontroll bin, die ist nicht eine gute Idee. Kann mir bitte jemand helfen?

dies ist der Controller

pmaster.controller ('AuthenticationCheckControll', [ 'localStorageService', '$ scope', '$ location', '$ Fenster', function (localStorageService, Umfang $ , $ location, $ window) {

var isValid = localStorageService.get("userID"); 
// I want this condition be check on every view in this application 
if (isValid ==null) 
{ 
    $window.location = "/AngularView/html/Master.html#/Login"; 
} 

}]);

+0

Sie hinzufügen können, nur ein $ rootScope Variable verwenden und es auf true gesetzt, wenn der Benutzer angemeldet ist Da Sie keine Sitzungen oder ähnliches verwenden, wird der Benutzer beim Schließen des Fensters ausgeloggt oder wenn Sie einen Ereignishandler anfügen, um diese $ rootScope-Variable auf "false" zu setzen. –

+0

ja !. Momentan erhalte ich die userID und speichere sie in einem localStorageService. Ich möchte jederzeit die Ansicht ändert lassen Sie es für diese Bedingung überprüfen –

Antwort

1

Sie können einfach unter Code in Routen

$urlRouterProvider.otherwise(function(){ 
    var isValid = localStorageService.get("userID"); 
    if (isValid ==null){ 
    return '/Login'; 
    }else{ 
    // Your home page state url 
    } 
}); 

Oder eine einfache Möglichkeit ist,

$urlRouterProvider.otherwise(localStorageService.get("userID") ? "/login" : "/homepage"); 
+0

Vielen Dank !! Das funktioniert für mich. –

1

Für Shared Sharing Utility-Funktionen können Sie einen "Service" verwenden, um sie zu bündeln.

Winkeldienste sind: Lazy instanziiert - Angular instanziiert nur einen Dienst, wenn eine Anwendungskomponente davon abhängt. Singletons - Jede von einem Service abhängige Komponente erhält einen Verweis auf die einzelne von der Service Factory generierte Instanz.

Services Winkelservices sind ersetzbare Objekte, die zusammen mit Dependency Injection (DI) verdrahtet sind. Sie können Dienste verwenden, um Code in Ihrer App zu organisieren und zu teilen.

More information & example here

Ein ähnliches Beispiel: AngularJS - User-Registration-and-Login-Example

Beachten Sie auch, dass 'Fabriken' sind in Angular zur Verfügung. Einige interessante Informationen über den Unterschied 'Service' vs 'Factory' finden Sie here.

Verwandte Themen