Angular 7组件

问题描述 投票:0回答:1

我需要将一个名为“photos”的数组从component.ts传递给component.html。这是我的component.ts文件

export class PhotosComponent implements OnInit {
public photos:any[]
constructor(){}
ngOnInit(){

 S3.listObjects({Delimiter: '/'}, function(err, data) {

  var albumName
if (err) {
  return alert('There was an error listing your albums: ' + err.message);
} else {
    console.log(data.CommonPrefixes)

  var albums = data.CommonPrefixes.map(function(commonPrefix) {
   //   console.log(albums)
    var prefix = commonPrefix.Prefix;
    console.log(prefix)
    albumName = decodeURIComponent(prefix.replace('/', ''));
    console.log(albumName)
    this.photos.push(albumName)
  });

  }


});
console.log(this.photos)

}

在线this.photos.push(albumName),它说“无法读取未定义的属性'照片'”我也无法将数据传递给html。任何帮助将不胜感激。提前致谢

javascript angular typescript angular7
1个回答
1
投票

您的this具有不同的范围,因为您处于回调函数中。解决这个问题的最简单方法是使用arrow functions代替。

function(err, data)改为(err, data) =>,将function(commonPrefix)改为(commonPrefix) =>

另一个(旧的)解决方案是将this绑定到函数或将this存储在不同的局部变量中。

© www.soinside.com 2019 - 2024. All rights reserved.