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 = [];