Angular ActivatedRoute data returns an empty object

后端 未结 5 1424
时光说笑
时光说笑 2020-12-15 02:43

I have a route registered with some data:

const routes: Routes = 
[
    {path: \'my-route\', data: { title: \'MyTitl         


        
5条回答
  •  一生所求
    2020-12-15 03:16

    Edit: the problem is that I was trying to access the ActivatedRoute from a Component which is outside the . So it looks like that this is the intended behaviour.

    However I still think that my answer below can be useful to anyone who is trying to accomplish the same thing.


    I found a workaround on GitHub (thanks manklu) that I used in order to accomplish what I needed:

    import { Component, OnInit } from '@angular/core';
    import { Router, RoutesRecognized } from '@angular/router';
    
    @Component({...})
    export class MyComponent implements OnInit {
      private routeData;
    
      constructor(private router: Router) { }
    
      ngOnInit() {
        this.router.events.subscribe((data) => {
          if (data instanceof RoutesRecognized) {
            this.routeData = data.state.root.firstChild.data;
          }
        });
      }
    }
    

    doing this way this.routeData will hold the route data that I needed (in my case the page title).

提交回复
热议问题