我在应用程序的登录组件中创建了一个登录功能
在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。
答案 0 :(得分:0)
我的猜测是您的模块未正确设置。检查您的控制台是否有错误,这将说明您的路线为何无法导航。模板中可能有问题,但是在控制台中未提供错误的情况下,很难/不可能知道出了什么问题。
此外,我将设置一个身份验证防护措施,以防止人们在需要身份验证的路由上着陆。
此外,您要为家庭路由呈现什么组件,似乎没有用于该路由的路由,并且该路由和第一个登录路由是应该对其应用身份验证保护的路由。 / p>
此外,您的身份验证服务登录功能可能会引发异常,添加捕获并记录错误。
请使用相关数据更新此问题,以便我为您提供进一步的帮助。
https://angular.io/guide/router#canactivate-requiring-authentication