Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

1.1K
Vistas
Cómo renderizar componentes dinámicos en Angular 13 o superior

Estoy trabajando en un proyecto de Angular 13 y necesito renderizar componentes dinámicos. La plantilla del componente y la lógica comercial provienen del lado del servidor como una cadena. Leí que no puede crear plantillas dinámicamente en Angular 13, ya que Angular debe compilar cualquier componente en el momento de la compilación, y las aplicaciones de Angular no se envían con el compilador JIT.

Esto es solo para una parte de la aplicación en la que permito que los clientes creen sus tableros personalizados.

Era posible hacer eso en Angular 12, pero en Angular 13 el servicio del compilador ya no está expuesto.

Código trabajando en Angular 12:

Modelo:

 <div> <ng-container *ngComponentOutlet="component"></ng-container> </div>

Componente:

 import { Compiler, Component, NgModule, OnInit } from '@angular/core' @Component({ selector: 'my-lab', templateUrl: './lab.component.html', styleUrls: ['./lab.component.scss'], }) export class LabComponent implements OnInit { component: any constructor(private compiler: Compiler) {} async ngOnInit() { const componentClass = class { public testing = { name: 'yago', } } const imports = (this.component = await this.compile({ template: `<div>Testing here {{ testing | json}}</div>`, componentClass, imports: [CommonsModule], })) } async compile(input: any) { const { template, componentClass, imports } = input const templateCompoment = Component({ template })(componentClass) const module = NgModule({ declarations: [templateCompoment], exports: [templateCompoment], imports: [...imports], })(class {}) const compiledModule = await this.compiler.compileModuleAndAllComponentsAsync(module) return templateCompoment } }

Me pregunto si necesita usar un conjunto diferente de API en Angular 13 o superior para poder hacer esto. ¿Alguien ha hecho esto?

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Tal vez esto podría ayudarte si entiendo correctamente lo que quieres hacer https://material.angular.io/cdk/portal/overview

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda