Angular 4 router.navigate

时间:2017-08-16 11:59:29

标签: angular angular-routing

我在应用程序的登录组件中创建了一个登录功能

在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。

1 个答案:

答案 0 :(得分:0)

我的猜测是您的模块未正确设置。检查您的控制台是否有错误,这将说明您的路线为何无法导航。模板中可能有问题,但是在控制台中未提供错误的情况下,很难/不可能知道出了什么问题。

此外,我将设置一个身份验证防护措施,以防止人们在需要身份验证的路由上着陆。

此外,您要为家庭路由呈现什么组件,似乎没有用于该路由的路由,并且该路由和第一个登录路由是应该对其应用身份验证保护的路由。 / p>

此外,您的身份验证服务登录功能可能会引发异常,添加捕获并记录错误。

请使用相关数据更新此问题,以便我为您提供进一步的帮助。

https://angular.io/guide/router#canactivate-requiring-authentication