如何在NavigationEnd上从路由器配置订阅数据?

时间:2018-03-27 18:34:43

标签: javascript angular typescript

目前:我正在订阅{path: '', component: HomeComponent, data:{header:true}},以从ngOnInit() { this.router.events.filter(e => e instanceof NavigationEnd).subscribe(event => { console.log(this.route.firstChild.data.value.header); //returns the correct data BUT also a tpye error }); } 路由器配置中获取数据

this.route.firstChild.data.value.header

有效。它将从路由器配置(ERROR in src/app/app.component.ts(29,52): error TS2339: Property 'value' does not exist on type 'Observable<Data>'.)获取正确的数据但它有以下错误。

{{1}}

我认为我需要订阅一些数据,因为它是一个可观察的数据。但我的尝试不起作用

1 个答案:

答案 0 :(得分:0)

您可以take数据属性中的值,如下所示:

示例:

const routeData$ = this.route.firstChild.data.take(1);

this.router.events.filter(e => e instanceof NavigationEnd).switchMap(() => routeData$).subscribe((data) => // data )