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
ngOnInit
es 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
ngOnInit
para 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.