Угловой 7 компонент - PullRequest
       14

Угловой 7 компонент

0 голосов
/ 30 апреля 2019

Мне нужно передать массив с именем "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) написано «Невозможно прочитать свойство 'photos' of undefined". Также я не могу передать данные в html.Любая помощь будет оценена.Заранее спасибо

1 Ответ

1 голос
/ 30 апреля 2019

Ваш this имеет другую область видимости, потому что вы находитесь в функции обратного вызова.Самый простой способ исправить это - вместо этого использовать функции стрелок .

Изменить function(err, data) на (err, data) => и function(commonPrefix) на (commonPrefix) =>.

Другой (старым) решением было бы связать this с функцией или сохранить this в другой локальной переменной.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...