[英]Angular 4 router.navigate
我已经在应用程序的登录组件中创建了登录功能
内部LoginComponent.ts
onSubmit(loginForm: NgForm): void {
if(loginForm.valid) {
this.authService.login(loginForm.value)
.then(data => {
if(data.status && data.status == 'first_login') {
console.log('in first_login');
this.router.navigate(['/first-login']);
} else {
localStorage.setItem('user', JSON.stringify(data));
this.router.navigate(['/']);
}
});
}
路由配置:
{
path: 'login',
component: LoginComponent
},
{
path: 'not-found',
loadChildren: './not-found/not-found.module#NotFoundModule'
},
{
path: 'first-login',
loadChildren: './first-login/first-login.module#FirstLoginModule'
},
{
path: '**',
redirectTo: 'not-found'
},
在从authService获取数据的此功能中,我可以在控制台中看到日志first_login ,但是路由器无法导航至所需的URL。
我的猜测是您的模块未正确设置。 检查您的控制台是否有错误,这将说明您的路线为何无法导航。 模板中可能有问题,但是在控制台中未提供错误的情况下,很难/不可能知道出了什么问题。
另外,我将设置一个身份验证防护措施,以防止人们在需要身份验证的路由上着陆。
另外,您要为本地路由呈现什么组件,似乎没有该路由,并且第一个登录路由是应该对其应用身份验证保护的路由。
另外,您的身份验证服务登录功能可能会引发异常,添加捕获并记录错误。
请使用相关数据更新此问题,以便我们为您提供进一步的帮助。
https://angular.io/guide/router#canactivate-requiring-authentication
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.