TypeError:未定义的属性(Angular)
2020-09-09
104
我有一个
.html
文件,我在其中使用
{{candidate.phone}>
,我可以在页面上看到结果,但在控制台中出现错误
ERROR TypeError:无法读取未定义的属性“phone”
。
如果我理解正确的话,这是因为
ngOnInit
不会等待
getCandidate()
的响应,所以问题是我如何在它完全完成后调用此函数?
这是我的代码:
candidate: ICandidatesInfo;
ngOnInit(): void {
this.getCandidate();
}
getCandidate() {
this.candidateInfoService
.getById(this.route.snapshot.params['id'])
.subscribe(candidate => this.candidate = candidate);
}
在服务中:
getById(id: string): Observable<ICandidatesInfo> {
return this.http.get<ICandidatesInfo>(`${this.url}/${id}`);
}
非常感谢任何帮助!
1个回答
您有 3 个选项:
1
- 使用
*ngIf
<span *ngIf="candidate && candidate.phone">{{candidate.phone}}</span>
2 - 为您的模型 ( 候选 ) 设置默认值
candidate: ICandidatesInfo={phone:null , ... }
3
- 使用
?
{{candidate?.phone}}
Abolfazl Roshanzamir
2020-09-09