Saltar al contenido

¿Cómo llamar a ngOnInit () nuevamente en Angular 2?

Solución:

Hay dos opciones desde mi punto de vista:

Llamar a ngOnInit () desde otro ámbito de función. Pero sugeriría no adoptar este enfoque dado ngOnInites un método de núcleo angular que pertenece a OnInit Interface.

    public ngOnInit() {
          this.route.params.subscribe((params: Params) => {
          this.model=this.userData;
      });      
    }
    
    update() {
           this.ngOnInit();
    }  

Divida su funcionalidad en otra función, use ngOnInitpara llamarlo y, posteriormente, cualquier solicitud se puede realizar desde cualquier lugar llamando a la función de la siguiente manera: this.<MethodName>();.

    public ngOnInit() {
          this.getRouteData();
    }
    
    update() {
           this.getRouteData(); 
    }

    getRouteData() {
      this.route.params.subscribe((params: Params) => {
          this.model=this.userData;
      }); 
    }    

Si el propósito es desencadenar ngOnInit() cuando se actualiza el parámetro de consulta, haga lo siguiente:

import { Router } from '@angular/router';
constructor(private router: Router) {
    this.router.routeReuseStrategy.shouldReuseRoute = () => false;
}

No debería necesitar llamar a ngOnInit nuevamente. Entonces, la pregunta sigue siendo, ¿qué es lo que realmente está tratando de lograr? ¿Tiene problemas para recuperar el parámetro de enrutamiento?

 ngOnInit(): void {
      this.route.params.subscribe((params: Params) => {
        this.model=this.userData;
  }); 

Su código dentro de la suscripción anterior será AUTOMÁTICAMENTE se volverá a ejecutar cada vez que cambien los parámetros de la ruta. Por lo tanto, no es necesario volver a llamar manualmente a ngOnInit.

¡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 *