Вам нужно изменить способ, которым вы получаете ссылку на ваш adHost
.
@ViewChild(AdDirective, {static: false}) adHost: AdDirective;
Он должен быть static: false
(см. документация ), поскольку он отображается динамически на mat-tab
, так что это не всегда в шаблоне.
И не вызывайте loadComponents
в ngOnInit
, так как представление еще не было обработано, поэтому adHost
будет неопределенным. Используйте ngAfterViewInit
например. Я только что прокомментировал это
Исправлен блик стека
Редактировать
После ваших разъяснений я изменил довольно много вещей (удалено ваш setInterval
, использованный @ViewChildren
вместо ViewChild
, используйте ngOnChanges
, чтобы узнать, когда визуализировать данные, ...)
Вот пример stackblitz