Angular 2 _this 未定义
Angular 2 _this is undefined
我在下面的函数调用中收到一个错误,指出 this.albumDetails 对于特定行未定义,即使所有其他此调用都工作正常。
错误是:类型错误:_this.albumDetails 未定义
错误可能发生在 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}`;
使用反引号
` `
更新 1:根据评论
似乎albumDetails
是一个数组,所以数组必须在压入元素之前进行初始化,所以在for循环外添加下面这行
this.albumDetails = [];
或变量声明期间
albumDetails = [];
我在下面的函数调用中收到一个错误,指出 this.albumDetails 对于特定行未定义,即使所有其他此调用都工作正常。
错误是:类型错误:_this.albumDetails 未定义
错误可能发生在 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}`;
使用反引号
` `
更新 1:根据评论
似乎albumDetails
是一个数组,所以数组必须在压入元素之前进行初始化,所以在for循环外添加下面这行
this.albumDetails = [];
或变量声明期间
albumDetails = [];