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));
});
我没有想法,需要一些帮助。
答案 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
});
});
});