繁体   English   中英

Angular 4 Router.Navigate

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM