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

515
Vistas
Lazy loading Angular 13+ módulos sin el compilador obsoleto

He trabajado mucho con la carga y creación de instancias de módulos Angular . (sin el enrutador)

Pero ahora con Angular 13 veo obsolescencias para las herramientas de compilación habituales para instanciar un NgModule:

ingrese la descripción de la imagen aquí

Aquí está mi código de acceso habitual para cargar un módulo

 const moduleFactory = await this.compiler.compileModuleAsync(module); const moduleRef = moduleFactory.create(this.injector); const componentFactory = moduleRef.instance.resolveComponent(selector);

Mirando más profundo El cambio V13 donde ViewContainerRef ahora tiene la fábrica incluida hace que los componentes dinámicos sean 1 paso más fáciles. Sin embargo, con respecto a ViewContainerRef.createComponent() , la documentación establece:

Angular en desuso ya no requiere fábricas de componentes para crear componentes dinámicamente. Use una firma diferente del método createComponent, que permite pasar la clase Component directamente.

Entonces, ¿cuáles son las nuevas direcciones para estas tareas en Angular 13+?

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

0

Puede aprovechar un nuevo método createNgModuleRef y reemplazar estos pasos:

 const moduleFactory = await this.compiler.compileModuleAsync(module); const moduleRef = moduleFactory.create(this.injector);

con

 const moduleRef = createNgModuleRef(module, this.injector);

También puede leer sobre todas las obsolescencias y posibles reemplazos en Angular doc https://angular.io/guide/deprecations

over 4 years ago · Santiago Trujillo Denunciar

0

Aquí tienes Importa ViewContainerRef, Renderer2, Injector

Crear un elemento de contenido

 const messageText = this.renderer.createText('message');

Crear la referencia del componente

 const compRef = this.vcr.createComponent(<ComponentClass>, {Injector: this.injector, projectNodes: [[messageText]]});

Si quieres el elemento

 const elem = compRef.location.nativeElement;
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