gpt4 book ai didi

javascript - Angular 2 - 方法中未定义的组件属性

转载 作者:太空狗 更新时间:2023-10-29 18:17:05 26 4
gpt4 key购买 nike

我有一个属性,它是一个自定义类数组。该数组填充了对服务的调用,该服务调用 Web 服务获取数据。我已经订阅了 observable,并且我正在使用 complete 事件来触发加载图形的方法。

图形使用的数据应该来自订阅期间填充的数组,但是当我尝试在方法中这样做时,我的组件属性出现未定义的错误。为什么会这样,我认为同一个类中的方法应该可以访问组件属性。

export class MetricsComponent implements OnInit{
errorMessage: string;
metric: MetricData[] = [];

//constructor is used for dependency injection
constructor(public _metricsService: MetricsService){}

ngOnInit(): void {
console.log('talking to service...');
this._metricsService.getData()
.subscribe(
data => this.metric = data,
error => this.errorMessage = <any>error,
this.LoadChart
);
}

LoadChart(): void {
console.log(this.metric); // <== this returns as undefined
}

最佳答案

使用箭头函数保留this.的范围

ngOnInit(): void {
console.log('talking to service...');
this._metricsService.getData()
.subscribe(
data => this.metric = data,
error => this.errorMessage = <any>error,
() => this.LoadChart()
);
}

关于javascript - Angular 2 - 方法中未定义的组件属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38775960/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com