获取路由器事件处理中目标的角度路由器路由配置

时间:2018-10-06 18:35:10

标签: angular typescript

我目前正在尝试将一种angularjs方法转换为angular。在angularjs中,我使用ui-router事件处理对路由进行一些重定向,以避免在重新加载页面或使用深层链接导航时发生解析和状态更改。在angularjs中,我向某些状态添加了所需功能的数组,然后使用该数据来确定在过渡期间是否需要重定向。 ui-router的状态层次结构也允许遵循父级的要求。

我正在尝试使用本机路由器在angular6 atm中执行相同的操作,但是面临一个问题-无法通过均匀处理来获取路由配置。

const routes: Routes = [
  { path: '', redirectTo: 'login', pathMatch: 'full' },
  { path: 'login', component: LoginComponent, data: { req: { auth: false } } },
  { path: 'home',
    component: HomeLayoutComponent,
    data: { req: { auth: true } },
    children: [
      { path: '', pathMatch: 'full', redirectTo: '/home/(content:roles)' },
      { path: 'roles', component: RolesComponent, outlet: 'content' },
      { path: 'pro', component: ProComponent, outlet: 'content' },
    ]
  }
];

这是我的示例路由配置。我想要得到的是,如果用户导航到“登录”路由,那么我检查了路由的配置,看到认证应该是假的,如果不是的话,则应重定向到本地。

我有一个用于路由器事件的事件处理程序

export class AppComponent implements OnInit {
  title = 'app';
  constructor ( private _core: EngineService, private router: Router ) { }
  ngOnInit() {
    this.router.events.subscribe((event) => {
        console.log(event, this.router);
      });
  }

但是,我进去的是:

RoutesRecognized {id: 1, url: "/", urlAfterRedirects: "/login", state: RouterStateSnapshot}

仅具有URL,我无法可靠地将其映射到router.config。我查看了有关此问题的许多问题,但所有这些问题都是关于获取URL的。关于如何获取实际配置的任何建议?

0 个答案:

没有答案
相关问题