Мне нужно динамически сгенерировать компонент. Я следил за этим руководством по загрузчику динамических компонентов. Проблема в том, что я использую в своем шаблоне директиву *ngIf. Теперь я застрял со следующей ошибкой в ​​моем AdBannerComponent:

TypeError: "this.adHost is undefined"

Код из учебного руководства размещен на stackblitz.

Вот код моего шаблона AdBannerComponent:

<div *ngIf="flag">
    <h3>Advertisements {{flag.name}}:</h3>
    <ng-template ad-host></ng-template>
</div>

Как мне использовать ng-template для отображения сгенерированного компонента с директивой ngIf?

3
FIL 23 Ноя 2018 в 16:14

1 ответ

Лучший ответ

Это из-за того, что вы использовали вид ребенка. Если вы хотите использовать viewchild , компонент должен отображаться как дочерний компонент. но с * ng, если это условно отображается. поэтому вы можете использовать стиль display: none вместо * ngIf . display: none изменяет только видимость .

Обратитесь к этой ссылке чтобы понять, что такое * ngIf и display: none

Отредактированная вами демонстрация

1
Asanka 23 Ноя 2018 в 13:47