Angular重定向不起作用
Angular redirection not working
我确信这已经回答了一千次,但我不明白为什么我只能在搜索数小时后使用window.location.href
重定向。这是怎么呢
angular.module(..., [])
.config([..., function(...) {
/* Route Provider and ngRoute reference removed as per comment below */
$stateProvider
.state('login', {
url : '/login',
controller: 'loginCtrl',
templateUrl: '/login'
})
.state('home', {
url: '/',
templateUrl: '/views/index',
controller: 'HomeCtrl'
});
$locationProvider.html5Mode(true);
}
])
.run(['$state', '$rootScope', function ($state, $rootScope) {
$rootScope.$on('$stateChangeStart', function (e, toState, toParams, fromState, fromParams) {
if ($rootScope.username == null || $rootScope.password == null) {
if (toState.templateUrl == "/login") {
} else {
event.preventDefault();
$state.go("login");
}
}
});
}
]);
Update: StateChangeStart被调用两次,第二次使用登录状态。控制台中没有抛出错误。我对angular很陌生,所以如果我做错了什么,我愿意接受任何建议。如果你需要任何额外的代码(例如:控制器,服务),请告诉我,我会发布它。
然而,在显示欢迎页面时,即使用户名和密码为空,它仍停留在欢迎页面上。在浏览器中输入/login
可以正常工作
根据Angular的$location。路径不工作:
/* snip */ else {
$rootScope.$apply(function () {
$location.path('login');
});
} /* snip */
显示错误:$digest already in progress
.
更多细节:我刚发现如果我去掉$locationProvider.html5Mode(true);
线,加载页面时不调用stateChangeStart。服务器是ASP.Net。
编辑2 看起来angular实际上是在获取登录页面,但不知道把它放在哪里?
在angular use的run函数中:
$rootScope.$on('$stateChangeStart', function (event, toState) {
if (toState.name != 'login') {
$state.go('login');
event.preventDefault();
}
});
只使用stateProvider来设置路由。
按照这里的指导使用AngularJS html5mode和nodeJS和Express
或在apache:
https://ngmilk.rocks/2015/03/09/angularjs-html5-mode-or-pretty-urls-on-apache-using-htaccess/为了正确设置html5 pushstate为angular js上的节点(如果这是你在服务器上使用)
点击这里阅读我写的关于身份验证问题的文章,或多或少会对您有所帮助。
相关文章:
- 在phonegap应用程序内部重定向不起作用
- 角度 JS + 重定向不起作用
- 意思是.js - 登录后重定向用户 - 在本地工作,但在部署时不起作用
- UI 路由器参数 URL 不起作用,只是重定向到 /
- 从帖子返回后,Javascript重定向不起作用
- 重定向不起作用
- 登录后PHP登录脚本重定向不起作用
- 使用self.location.href重定向不会'不起作用
- 重定向到PDF时像素跟踪代码不起作用
- j查询页面重定向在按钮单击时不起作用
- 在Kentico中使用response.write重定向HTML表单不起作用
- window.location.href 不起作用,无法重定向
- 路由提供程序否则重定向到不起作用
- 样式<输入类型=“范围”>用于重定向,在触摸设备上不起作用
- 花式框默认关闭在表单重定向后不起作用
- 在 mvc 应用程序中使用 href 属性重定向 asp.net 不起作用
- Facebook 登录重定向 PHP/Javascript 不起作用
- 弹出窗口重定向在IE中不起作用,但在其他浏览器中可以
- Spring ModelandView 重定向在 jquery ajax 调用中不起作用
- Python 重定向到 URL 不起作用