ngTemplateOutlet com valor dinâmico
Estou usando ngTemplateOutlet com valor dinâmico.
<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>
Ondeconfig
é um objetoOndeconfig[part]
é um booleanoOndepart
é a chave do objeto e o valor passado para ngTemplateOutlet.Eu sempre recebo o erro:
ERROR TypeError: templateRef.createEmbeddedView is not a function
Eu segui:https://stackoverflow.com/a/41241329/5627096
Mas talvez eu não possa fazer algo assim.
Na verdade, o objeto de configuração contém booleano, como eu disse, e define a parte de um formulário a ser exibido.
É realmente grande e para uma melhor leitura, estou procurando uma solução para dividi-la.
ATUALIZAR
O objeto de configuração se parece com:
config = {
one: true,
two: false
}
Então, na minha forma, apenas o<ng-template #one></ng-template>
é exibido. Se eu transformar dois em verdadeiro, ambos serão exibidos.
Não sei se é a melhor abordagem. Posso usar * ngIf, mas com esta solução tenho um código grande realmente ilegível.