从app.component.ts访问route.data

时间:2017-06-03 08:01:42

标签: angular

我在app-routing.module.ts

中设置了这样的路线
const routes: Routes = [
  { path: 'faq',           component: FaqComponent, data:[{title:"FAQ"}]},
....]

我可以很好地从FaqComponent内部访问data属性。

export class FaqComponent implements OnInit {

  constructor(private route:ActivatedRoute) { }

  ngOnInit() {
       console.log("faq data-snapshot", this.route.snapshot.data);
  ...

我想要做的是从我的主要组件(包含路由器)访问数据对象,这样我就可以以某种方式设置标题。

这些是我目前没有努力的工作。数据对象永远不会出现在日志中。

export class AppComponent implements OnInit{

     constructor(
             private route: ActivatedRoute,
             private router: Router) {

     }

     ngOnInit(): void {


       console.log("data-snapshot", this.route.snapshot.data);

       this.route.data.toPromise().then( data => {
         console.log("data", data);
       }, data=>{
         console.log("some problem with data", data);
       }); 

       this.router.events.subscribe(event=>{
        console.log("router event: ", event);
        if (event instanceof RoutesRecognized){
          let rec:RoutesRecognized = event;
          console.log("route rec data", rec.state.root.data);
        }  
       });

     }

0 个答案:

没有答案