gpt4 book ai didi

javascript - Angular 2 _this 未定义

转载 作者:行者123 更新时间:2023-11-29 19:02:02 26 4
gpt4 key购买 nike

我在下面的函数调用中收到一个错误,指出 this.albumDetails 对于特定行是未定义的,即使所有其他 this 调用都工作正常。

错误是:TypeError: _this.albumDetails is undefined

错误可能发生在 this.albumDetails.concat(items) 其中 items 是一个 json 对象数组

感谢任何帮助。

export class AppComponent {
albums: any[];
albumDetails: any[];
searchAlbum(input: any){
this.show = true;
this.searchService.getAlbum(input).subscribe(data => {
this.albums = data;
for(var i = 0; i < 50; i++){
this.searchService.getDetails(this.albums[i].artist, this.albums[i].name, this.albums[i].mbid).subscribe(items => {
this.albumDetails = this.albumDetails.concat(items); //Error occuring here at this.albumDetails.concat(items)
console.log(this.albumDetails);
});
}
});
}
}

最佳答案

初始化albumDetails为空字符串

albumDetails : string =' '

或者,您可以使用 ES5 语法进行字符串连接,如

this.albumDetails = `${this.albumDetails}${items}`;

使用反引号

` `

Reference Stackoverflow Post

更新 1:根据评论

albumDetails 似乎是一个数组,所以在推送元素之前必须初始化一个数组,所以在 for 循环之外添加下面这行

this.albumDetails = [];

或在变量声明期间

albumDetails = [];

关于javascript - Angular 2 _this 未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46251714/

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