Когда мы используем ng-template
для создания предопределенного шаблона, содержимое отображается перед использованием.
Это проблема, когда у нас есть такие элементы, как автозаполнение, которые вызывают удаленный API для получения данных.
Я бы хотел предотвратить это и отображать содержимое шаблона только при необходимости.
Контекст: у меня есть компонент таблицы с расширенным фильтром, который открывается, когда пользователь нажимает кнопку расширенного фильтра. Я не хочу, чтобы фильтр отображался, пока пользователь этого не сделает.
Редактировать: Моя проблема не в ожидании поступления данных. Моя проблема в том, что я не хочу отображать автозаполнение, пока пользователь не откроет расширенный фильтр таблицы. Моя таблица является компонентом и использует transclusion для получения фильтра. Поэтому я не хочу использовать IF в компоненте, который использует таблицу, но в самой таблице, которая контролирует, когда должен отображаться фильтр.
РЕДАКТИРОВАТЬ: Это было неправильное понимание с моей стороны. На самом деле контент не отображается на viewInit. Рендеринг происходил в моем фильтре продвижения таблицы, который монтировался в скрытом режиме Размещение одного * ngIf в моем ngTemplateOutlet
исправило проблему.
список продвинутый-filter.component.html
<ng-container *ngIf="opened"
[ngTemplateOutlet]="templateRef"
[ngTemplateOutletContext]="{form: form}"
></ng-container>