, но это делает его менее общим, что разочаровывает.
я проблема с новымng-content
включение.
Допустим, у меня есть компонентmy-component
что в егоngOnInit()
Функция выполняет некоторые тяжелые операции под нагрузкой (на данный момент, простоconsole.log()
).
У меня есть обертка, которая отображает содержимое через включение (my-wrapper.component.html
).
<ng-content></ng-content>
Если я настрою окружение так, оператор log не будет отображаться:
<my-wrapper *ngIf="false">
<my-component></my-component>
</my-wrapper>
Я предполагаю, чтоmy-wrapper
Компонент не создается, поэтому содержимое игнорируется.
Но если я попытаюсь переместить логику вmy-wrapper
компонент как этот (my-wrapper.component.html
):
<ng-container *ngIf="false">
<ng-content></ng-content>
</ng-container>
Я всегда вижуconsole.log()
выход. Я думаю,my-component
строится, а затем хранится до тех пор, пока*ngIf
становитсяtrue
внутриmy-wrapper
.
Намерение состояло в том, чтобы создать общий компонент «list-item + detail». Скажем, у меня есть список из N элементов обзора (my-wrapper
), которые получают в*ngFor
петля. Каждый из этих элементов имеет свой собственный компонент детализации (my-component
), который должен загружать свои собственные данные, как только я решу показать больше информации для конкретного элемента.
overview.html:
<ng-container *ngFor="let item of items">
<my-wrapper>
<my-component id="item.id"></my-component>
</my-wrapper>
</ng-container>
мой-wrapper.component.html:
<div (click)="toggleDetail()">Click for more</div>
<div *ngIf="showDetail">
<ng-content></ng-content>
</div>
Есть ли способ сказать Angular, чтобы игнорировать включенный контент, пока он не будет добавлен на страницу? Аналогично тому, как это было в AngularJS.