2016-06-29 8 views
1

Ich arbeite an einem Angular-Projekt, aber ich habe ein kleines Problem und ich würde jede Hilfe zu schätzen wissen, weil ich wirklich verloren bin. Grundsätzlich muss ich überprüfen, ob ein Benutzer angemeldet ist, und wenn er, er sollte nicht erlaubt werden, um eine bestimmte Ansicht/Route zuzugreifen, hier ist der Code, den ich für diese Verwendung:Überprüfen Sie den Login-Status in RouteProvider

'use strict'; 

angular.module('testApp') 
    .config(function ($routeProvider) { 
    $routeProvider 
     .when('/registroVisitante', { 
     template: '<registro-visitante></registro-visitante>', 
     resolve: { 
      "check": function(Auth, $location) { 
      console.log(Auth.isLoggedIn()); 
      if (!Auth.isLoggedIn()) { 
       alert("Access allowed"); 
      } else { 
       $location.path('/'); //redirect user to home. 
       alert("Access denied"); 
      } 
      } 
     } 
     }); 
    }); 

Das Problem selbst ist das, das funktioniert eigentlich, aber nur wenn ich versuche die route über einen anchor-click oder ng-click oder was auch immer zu erreichen, wenn ich die route in die adresse eingib, kann ich darauf zugreifen aber es sollte niemandem hat eine Idee warum?

+0

Ist "Auth" ein Dienst, der ein Back-End abfragt? – pulse0ne

+0

Ja, es ist das erste Mal, eine Frage hier zu stellen, also habe ich wahrscheinlich kleine Details weggelassen, die euch helfen –

+0

Wenn Sie postet, was der 'Auth'-Dienst ist, oder zumindest was die 'isLoggedIn'-Funktion tut, würde das passieren sehr hilfreich sein – pulse0ne

Antwort

1

Versuchen Sie, diese

angular.module('testApp') 
    .config(function ($routeProvider) { 
     $routeProvider 
      .when('/registroVisitante', { 
       template: '<registro-visitante></registro-visitante>', 
       resolve: { 
        "check": function (Auth, $location) { 
         Auth.isLoggedIn(function (response) { 
          console.log(response); 
          if (response) { 
           $location.path('/'); //redirect user to home. 
          } 
         }); 
        } 
       } 
      }); 
    }); 

Das Problem war, dass es sich um eine asynchrone Anforderung war und vielleicht, wenn es um das bekam, wenn es nicht definiert war.

+0

Das hat es geschafft, danke! –

Verwandte Themen