Я также хочу показать вам, как лучше понять хуки жизненного цикла в Angular. Вы устанавливаете свойство класса следующим образом:
site: any[] = [{
title: this.siteData.title, // this is undefined and throws error
}];
Это означает, что вы обращаетесь к this.sideData
, который устанавливается только в хуке ngOnInit, который фактически запускается после инициализации (создания) компонента. Кроме того, вы подписываетесь только на Observable в ловушке жизненного цикла (OnInit), т. Е. Вы еще не активно присваиваете результат, только после того, как наблюдаемое выдает результат. Ваша наблюдаемая не обязательно должна быть асинхронной, но в вашем случае она, скорее всего, равна.
Короткая история: вы получаете ошибки, потому что вы пытаетесь получить доступ к свойству объекта this.siteData
, который на данный момент не определен.