2014-09-04 27 views
3

如果sessionStorage.logged設置爲true,我想將mypage重定向到主頁。以下是我的代碼。爲什麼我的下面的代碼不工作。如何在解決條件中重定向到routeProvider中的另一個頁面

因爲我是新來的angularjs我不知道如何做到這一點。我會更加心存感激到u如果u有助於解決這個

.when('/login', 
{ 
    templateUrl: 'views/login.html', 
    controller:'LoginCtrl', 
    resolve: 
    { 
      mess:function() 
      { 
       var t=(sessionStorage.logged).toString(); 
       if(t=="true") 
       { 
        redirectTo: '/home'; 
       } 
      } 

    } 
}) 
+2

不是一個真正的答案,但有解決方法:而不是「解析」 ,添加你的登錄控制器:if(alreadyLoggedin){$ location.path('/ home');} – Fortega 2014-09-04 11:08:27

+1

@Fortega - 控制器邏輯只在控制器第一次加載時執行。如果用戶有第二次手動點擊/登錄,您的解決方案將不會執行。 – andyzinsser 2015-01-06 00:01:55

回答

5

使用$location.path(),它的工作原理就像redirectTo

.when('/login', 
{ 
    templateUrl: 'views/login.html', 
    controller:'LoginCtrl', 
    resolve: 
    { 
      mess:function($location) 
      { 
       var t=(sessionStorage.logged).toString(); 
       if(t=="true") 
       { 
        $location.path('/home'); 
        //redirectTo: '/home'; 
       } 
      } 

    } 
}) 
+1

我發現的另一個選擇是onEnter事件:http://stackoverflow.com/questions/25047884/angular-ui-router-to-accomplish-a-conditional-view – andyzinsser 2015-01-06 00:02:36

相關問題