【问题标题】:Not able to find route custom data in angular 6 in app component无法在应用程序组件中找到 Angular 6 中的路由自定义数据
【发布时间】:2019-10-31 04:24:39
【问题描述】:

我有一个 Angular 应用程序,并将自定义数据添加到给出的路由中

{ path: 'profile', component: ProfileComponent, data: {title: 'example'} }

在 app.component.ts 文件中我有以下代码

private route: ActivatedRoute

console.log('route snapshot', this.route.firstChild.data._value.pageType );

我得到的错误是

ERROR in src/app/app.component.ts(71,64): error TS2339: Property '_value' does not exist on type 'Observable<Data>'.

谁能告诉我如何访问 app.component.ts 中的路由数据

【问题讨论】:

    标签: javascript angular typescript


    【解决方案1】:

    更新

    您需要订阅 AppComponent 中的路由器事件并从中获取参数:

    constructor(private router: Router, route: ActivatedRoute) { }
    
    ngOnInit() {
      this.router.events.subscribe(event => {
        if(event instanceof NavigationEnd){
          console.log(this.route.root.firstChild.snapshot.data['title']);
        }
      });
    }
    

    如果你只想要那个路径,你可以再添加一个条件

    if(event instanceof NavigationEnd && event.url === '/profile')
    

    旧答案

    您需要访问快照以获取数据参数

    this.route.snapshot.data['title'];
    

    【讨论】:

    • 它给出未定义
    • 应该在 ProfileComponent 中,而不是在 AppComponent 中
    • 但我想在应用组件中访问它
    猜你喜欢
    • 2019-03-18
    • 2022-08-12
    • 1970-01-01
    • 2017-09-16
    • 2019-02-18
    • 2017-09-02
    • 1970-01-01
    • 2019-02-01
    • 2019-07-06
    相关资源
    最近更新 更多