Angular Lazy Routes和可选的矩阵参数

时间:2018-06-19 06:20:22

标签: angular angular2-routing

Angular 6

我正在使用全局可选矩阵参数来动态地使用ngx-translate切换语言:my-app /#some-component; lang = it

此代码在我引入所有应用程序模块的延迟加载之前已经工作了

app.component.ts

this.router.events.subscribe((event: Event) => {
  if (event instanceof RoutesRecognized) {
    const params = event.state.root.firstChild.params;
    const lang = params['lang'];
    if (lang) {
      this.languageService.changeLanguage(lang);
    }
  }
});

使用延迟加载时,params变量为空。我无法弄清楚如何获得所需的功能。

这也不起作用(空):

this.activatedRoute.params.subscribe(params => console.log(params));

this.activatedRoute.url.subscribe(segments => {
  segments.forEach(segment => console.log(segment.parameterMap.keys));
});

我没有想法,需要一些帮助。

1 个答案:

答案 0 :(得分:0)

经过更多研究后,我找到了解决方案。

虽然看起来很丑

this.router.events.pipe(
  filter(event => event instanceof RoutesRecognized)
).subscribe((event: RoutesRecognized) => {
  event.state.root.children.forEach(child => {
    child.children.forEach(c => {
      const params = c.params;
      // do stuff
    });
  });
});