【发布时间】:2014-08-04 17:32:21
【问题描述】:
我学习了 AngularJS,但在重定向页面时遇到了问题。
用例:
- 我有一个 index.html 主页,但如果用户没有登录,那么它应该重定向到 login.html 页面(每个页面也应该只有登录用户可以访问)
在主 app.js 中,我有一个提供者和运行者:
var app = angular.module("app", ["ngRoute", "ngAnimate", "ngResource"]);
app.config(["$routeProvider", "$locationProvider", function($routeProvider, $locationProvider) {
$routeProvider
.when("/", {
template: "index.html"
})
.when("/other", {
templateUrl: "other.html"
});
}]);
app.run(["$rootScope", "LoginService", function($rootScope, LoginService, $window) {
LoginService.checkSession().then(function(response) {
$rootScope.isLoggedIn = response;
if ($rootScope.isLoggedIn === false) {
console.log('DENY');
$window.location.href = '/login';
}
}, function(reject) {
$rootScope.isLoggedIn = reject;
});
}]);
问题: 当我没有登录时,当涉及到“$window.location.href ='/login'”这一行时,这是控制台中的错误:
DENY
TypeError: Cannot read property 'location' of undefined
at LoginService.checkSession.then.$rootScope.isLoggedIn
当我在该行之前设置调试器时,它会打印:
$window
undefined
我不知道为什么会这样。有人可以帮我解决这个问题吗?
最好的问候, 卢克
【问题讨论】: