Saltar al contenido

¿Cuándo se activa el evento OnInit para un componente angular cargado dinámicamente?

Solución:

ngOnInit El gancho se activará en el próximo ciclo de detección de cambios que cubra el componente dinámico. Al cubrir me refiero a que la vista para el componente dinámico debe crearse y debe adjuntarse al árbol de detección de cambios Angular.

ViewContainerRef::createComponent El método solo adjunta la Vista recién creada a la vista actual y la representa.

Una vez que esa nueva Vista se adjunta al árbol, Angular puede verificarla durante la fase de detección de cambios.

La siguiente fase de detección de cambios comienza una vez que NgZone determina que no hay microtareas programadas. Por ejemplo, sucederá después de su controlador de eventos o después de la llamada http.

Puede activar manualmente la detección de cambios para esa vista creada:

const componentRef = this.target.createComponent(componentFactory);

componentRef.changeDetectorRef.detectChanges(); // ngOnInit will be called 

componentRef.instance.x = 3; // access this.x in ngOnInit will give you undefined

Por otro lado, en su caso, ngOnInit tendrá acceso a cualquier propiedad que haya pasado durante la llamada a setData.

const componentRef = this.target.createComponent(componentFactory);

componentRef.instance.x = 3;

// somewhen later ngOnInit will be called 

De la documentación:

Inicialice la directiva / componente después de que Angular muestre primero las propiedades enlazadas a datos y establezca las propiedades de entrada de la directiva / componente.

Llamado una vez, después del primer ngOnChanges ().

Esto significa que se llama una vez que se realiza la interpolación y se configuran las entradas.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *