我正在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');
}
});
答案 0 :(得分:1)
run函数用于在应用程序初始化时打算运行一次的代码。每次您想要投入服务或控制器或任何想要运行它的路线时,您需要运行的任何东西。