如何在Angular4中访问路由中的数据

时间:2018-09-27 21:21:56

标签: angular angular2-routing

我一直在尝试从其他组件访问路由器中的数据,但是它始终返回未定义。让代码说话。

import { Component,OnInit} from '@angular/core';
import {ActivatedRoute} from '@angular/router';

export class AppComponent implements OnInit{
    subPagetitle:string = 'test1';
    constructor(private dataRouter:ActivatedRoute) {

    }
    ngOnInit() :void{
        this.subPagetitle = this.dataRouter.snapshot.data['mydata'];
    }
}

在我的路由组件中:

const routes: Routes = [
    { path: 'paycheckDetail', component: PaycheckDetailComponent,data:{mydata:'test'}}  
];

当我尝试使用dataRouter.snapshot.data ['mydata']访问mydata时,它返回未定义。任何想法?顺便说一句,控制台中没有错误。 非常感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

订阅data可观察的ActivatedRoute

class TheComponent {
  constructor(ar: ActivatedRoute) {
    ar.data.subscribe(data => {
      this.myData = data.mydata;
    });
}

来自官方文档的更多信息是herethere