我有一个基本的需求,我想用路线来解决:
我的问题是,第一次显示网络应用,用户似乎被正确重定向,因为 URI正确,但不是显示的视图(它对应于默认视图。)
I've created a jsbin,如果您希望真实地看到它。 result can be viewed here。
重现的步骤:
needsAuth
的内容}})login
HTML代码:
login
以下是javascript代码:
<!DOCTYPE html>
<html ng-app='app'>
<head>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.3.2/angular.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.3.2/angular-route.js"></script>
<meta charset="utf-8">
<title>JS Bin</title>
</head>
<body>
<div ng-view>
</div>
</body>
</html>
在第一次加载时,您可以看到URI和内容不匹配
如果我重新加载页面,一切都按预期工作:
我做错了吗?如果是这样的话,在某些条件下重定向用户的正确方法是什么?
[编辑]:Angular 1.2.26似乎在这种情况下表现正确,但不是角度1.3.2
答案 0 :(得分:6)
更改
function registerRedirection($rootScope, $location){
$rootScope.$on('$routeChangeStart', function(event, next){
$location.path('/login');
});
}
要
function registerRedirection($rootScope, $location){
$rootScope.$on('$locationChangeStart', function(event, next){
^ change this ^
$location.path('/login');
});
}
然后您的初始加载正常工作。