最佳答案
我正在开发的应用程序包含各种状态(使用 ui-router) ,其中一些状态要求您登录,其他状态是公开可用的。
我已经创建了一个方法,可以有效地检查用户是否已经登录,我目前遇到的问题实际上是在必要时重定向到我们的登录页面。应该注意的是,登录页面目前没有放在 AngularJS 应用程序中。
app.run(function ($rootScope, $location, $window) {
$rootScope.$on('$stateChangeStart', function (event, toState, toParams, fromState, fromParams) {
if (toState.data.loginReq && !$rootScope.me.loggedIn) {
var landingUrl = $window.location.host + "/login";
console.log(landingUrl);
$window.open(landingUrl, "_self");
}
});
});
Log 正确地显示了预期的 URL。在这之后,我尝试了几乎所有的方法,从 $window.open 到 window.location.href,不管我尝试什么,都没有发生重定向。