2014-02-17 99 views
0

我在Angular中編寫簡單的應用程序,我只是想檢查用戶是否登錄。如果沒有 - 然後重定向他。它幾乎可以工作,但是當我在#/表單網站上輸入瀏覽器[angularsite]#/ home時,我每隔兩秒就會看到一個主頁,其他時間我都會重定向。爲什麼運行方法不會始終運行?我還在用警報進行檢查 - 同樣的事情發生 - 警報每隔兩次顯示一次。以下是我的代碼:AngularJS運行方法並不總是運行

angular.module('myLoginCheck',[]).factory('$logincheck', function(){ 
    return function(){ 
     // check if localstorage 
    return false; 
    }; 
}); 

var myApp = angular.module('myApp',['ngRoute','myAppControllers','myLoginCheck']); 

myApp.config(['$routeProvider','$locationProvider',function($routeProvider,$locationProvider) { 
    $routeProvider. 
     when('/form',{ 
      templateUrl: 'views/form.html', 
      controller: 'FormCtrl' 
     }). 
     when('/home',{ 
      templateUrl: 'views/home.html', 
      controller: 'HomeCtrl' 
     }). 
     otherwise({ 
     redirectTo: '/form' 
     }); 
}]).run(function($logincheck,$location) { 
    alert(2); 
    if($logincheck()) 
    { 

    } 
    else 
    { 
     $location.path('/form'); 
    } 
}); 

回答

1

運行函數用於您打算在應用程序初始化時運行一次的代碼。您每次需要運行服務或控制器或任何想要運行的路線時都需要運行。