我有代码
$rootScope.$on('$routeChangeStart', function(event){
User.refresh();
if(!User.isLoggedIn()){
event.preventDefault();
$location.path('/sign_in');
} else {
if($location.path() == "/sign_in"){
$location.path("/");
};
};
});
我更改了"angular-route": "~1.4.0",
,然后$ location.path('/ sign_in')无效。如果我评论event.preventDefault();
,这样可以正常工作。当我使用~1.3.0
时,情况就是这样。谁能告诉我我做错了什么?
答案 0 :(得分:0)
我遇到同样的问题并在这里找到了答案:
https://github.com/angular/angular.js/pull/9678
https://github.com/angular/angular.js/issues/9607
在版本1.3和1.4上使用$ location.path('/ sign_in')进行角度调用$ routeChangeStart事件。
所以你得到一个无限循环。如果你使用event.preventDefault();这个循环中断了。