我've a chrome extension (or browser plugin) which I using Angular 5 for popup. Some considerations before the problem, I'已经重定向主要组件(航班组件)的登录屏幕,所以 router.navigation 在这种情况下按预期工作 .

在扩展中的导航栏中,我有一个来自 background script 的消息的监听器,当他更改视图并通知我的扩展时,它会监听用户操作 . 例如从航班视图更改为酒店视图 .

当这个动作发生时,我需要将航班组件更改为酒店组件 . 要做到这一点,我有一个服务,它监听从 background script 发出的消息,发出各种类型的消息,所以我过滤只获得正确的消息 . 按照我捕获 value.type 的代码 .

在我 navbar 我订阅了消息 .

this.message
    .filter(value => value.hasOwnProperty('type'))
    .subscribe((value) => {
      this.router.navigate(['/' + value.type]);
    });

此时所有发生的都是期待甚至导航被调用,但是当值为酒店或汽车时不会改变到酒店组件,在飞行组件中保持“锁定” .

有关应用的更多信息:

  • 从登录到航班的导航按预期发生

  • 我正在使用canActivate来保护路线,如航班,酒店和汽车

  • 航班,酒店和汽车都不是儿童路线 .