首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在升级到RC.3后,角2路由器不会reRoute到正确的路由。

在升级到RC.3后,角2路由器不会reRoute到正确的路由。
EN

Stack Overflow用户
提问于 2016-07-07 09:07:51
回答 1查看 330关注 0票数 1

我有一个问题,在路由器的功能navigate,因为一个变化的角度2版本。我将版本从2.0.0-rc.1升级到2.0.0-rc.3,因此我不得不将路由器的版本更改如下:

@转角/路由器:2.0.0-rc.1 to 3.0.0-α7

我创建了一个包含所有路径的文件。

代码语言:javascript
复制
export const routes:RouterConfig = [
    { path: '', component: Home, terminal: true },
    { path: 'home', component: Home },
    { path: 'login', component: Login },
    ...

然后,我将路由添加到引导函数中。

代码语言:javascript
复制
bootstrap(AppComponent, [
    AppWebservice,
    HTTP_PROVIDERS,
    APP_ROUTER_PROVIDERS,
    provide(Config, {useClass: Config})
]).catch(err => console.error(err));

我有一个包含以下代码的组件:

代码语言:javascript
复制
ngOnInit() {
    console.log('isLoggedin: ' + isLoggedin())
    if (isLoggedin()) {
        this.router.navigate(['/home']);
    } else {
        this.router.navigate(['/login']);
    }
}

在这个组件中,代码this.router.navigate(['/login']);与2.0.0-rc.1很好地工作,但现在它不适用于新版本。我检查了isLoggedin()的值,当它的值为false时,我仍然被重新路由到主页,而不是登录页面。

有人知道路由器为什么不能正常工作吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-07 14:25:43

这是一个基本的例子,说明你应该如何为你的路线设置一个守卫。

在您需要重定向的路由/s上添加canActivate: [HomeGuard]

您将需要创建一个服务,以便将isLoggedin注入到保护程序中。

当然也创造了可注射的护卫军。

如果你还有什么问题请告诉我。

代码语言:javascript
复制
export const routes:RouterConfig = [
    { path: '', component: Home, terminal: true, canActivate: [HomeGuard]},
    { path: 'home', component: Home },
    { path: 'login', component: Login },


  @Injectable()
  export class HomeGuard implements CanActivate {
    constructor(provate isLoggedinService: IsLoggedinService, private router: Router) {}

    canActivate() {
      console.log('this.isLoggedinService.isLoggedin: ' + this.isLoggedinService.isLoggedin())
      if (this.isLoggedinService.isLoggedin()) {
          this.router.navigateByUrl('home');
          return false;
      } else {
          this.router.navigateByUrl('login');
          return false;
      }
    }
  }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38241509

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档