在Angular中,当使用订阅(subscription)来获取异步数据时,有时会遇到在本地变量中获取到未定义的问题。这通常是因为订阅的异步操作还没有返回结果,而在此之前,代码就尝试访问该本地变量。
以下是解决此问题的一些常见方法:
{{ data?.property }}
{{ data.property }}
// component.ts
data: any;
getData() {
this.dataService.getData().subscribe((response) => {
if (response) {
this.data = response;
}
});
}
{{ (data$ | async)?.property }}
// component.ts
data$: Observable;
getData() {
this.data$ = this.dataService.getData();
}
以上是一些常见的解决方法,根据具体的情况选择适合你的方法。