AngularJS run方法并不总是运行

时间:2014-02-17 22:06:14

标签: javascript angularjs

我正在Angular中编写简单的应用程序,我只想检查用户是否已登录。如果没有 - 则重定向他。它几乎可以工作,但是当我在#/ form网站上输入我的浏览器[angularsite]#/ home时,我每隔一次就会获得一次主页,而每隔一次我都会被重定向。为什么run方法总是不运行?我也在检查警报 - 同样的事情发生 - 警报每隔一次显示。这是我的代码:

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 个答案:

答案 0 :(得分:1)

run函数用于在应用程序初始化时打算运行一次的代码。每次您想要投入服务或控制器或任何想要运行它的路线时,您需要运行的任何东西。