это
ользую ngTemplateOutlet с динамическим значением.
<ng-container *ngFor="let part of objectKeys(config);">
<ng-container *ngIf="config[part]">
<ng-container [ngTemplateOutlet]="part"></ng-container>
</ng-container>
</ng-container>
<ng-template #one></ng-template>
<ng-template #two></ng-template>
гдеconfig
это объектгдеconfig[part]
является логическимгдеpart
это ключ объекта и значение, переданное ngTemplateOutlet.Я всегда получаю ошибку:
ERROR TypeError: templateRef.createEmbeddedView is not a function
Я следовал:https://stackoverflow.com/a/41241329/5627096
Но, может быть, я не могу сделать что-то подобное.
На самом деле, объект конфигурации содержит логическое значение, как я уже сказал, и определяет часть формы для отображения.
Это действительно большая форма и для лучшего чтения, я ищу решение, чтобы разделить ее.
ОБНОВИТЬ
объект конфигурации выглядит так:
config = {
one: true,
two: false
}
Так что в моей форме только<ng-template #one></ng-template>
отображается. Если я поверну два к истине, оба отображаются.
Я не знаю, лучший ли это подход. Я могу использовать * ngIf, но с этим решением у меня действительно нечитаемый большой код.