Angular无法读取'undefined'的值-无法在setTitle()方法中读取'casestudy'的值?

时间:2019-01-14 12:18:09

标签: angular6

这是我的组件:

export class CaseStudyDetailComponent implements OnInit {

casestudy: CaseStudy;

constructor ( private caseStudyService: CaseStudyService, private route: ActivatedRoute, public titleService: Title ) { }

ngOnInit() {

    this.route.params.subscribe((params: { Handle: string }) => {
        this.caseStudyService.getCaseStudy(params.Handle).subscribe(casestudy => this.casestudy = casestudy);
    });

    this.titleService.setTitle(this.casestudy.Handle);

}
}

这是它正在调用的服务:

    getCaseStudy(Handle: string): Observable<CaseStudy> {
    return this.http.get<CaseStudy>(`${environment.apiPath}/project/handle/${Handle}`);
}

我希望能够在'setTitle()'方法中访问'casestudy'的值。我可能只是误解了预期的行为或语法错误。

让我知道是否需要更多信息。

1 个答案:

答案 0 :(得分:1)

因为在您的订阅可以在caseStudy中设置响应之前,console.log已被执行。

要解决此问题,请将console.log方法放入订阅

this.caseStudyService.getCaseStudy().subscribe(caseStudy => {
  ... code
  console.log(caseStudy);
});