$state.go en Angular moderno
$state.go pasa a ser Router.navigate, que recibe un arreglo de segmentos de ruta, o Router.navigateByUrl, que recibe una URL completa.
Antes · AngularJS
vm.open = function (user) {
$state.go('userDetail', { id: user.id });
};
vm.goToPage = function (page) {
$state.go('users', { page: page }, { location: 'replace' });
};
vm.showTab = function (tab) {
$state.go('.', { tab: tab });
};Después · Angularprivate router = inject(Router);
private route = inject(ActivatedRoute);
open(user: User) {
this.router.navigate(['/users', user.id]);
}
goToPage(page: number) {
this.router.navigate(['/users'], { queryParams: { page }, replaceUrl: true });
}
showTab(tab: string) {
this.router.navigate([], {
relativeTo: this.route, queryParams: { tab }, queryParamsHandling: 'merge',
});
}Qué cambia
- navigate arma la URL a partir de segmentos y extras como queryParams; navigateByUrl recibe una URL completa como string o un UrlTree.
- La navegación relativa es explícita: pasa relativeTo con el ActivatedRoute actual.
- Ambos métodos devuelven un Promise<boolean> que indica si la navegación se completó.
Consejo de migración. $state.reload no tiene equivalente directo. En la mayoría de los casos la pantalla solo necesita datos frescos, así que vuelve a llamar al servicio que los carga en vez de recargar la ruta.
Relacionado
- $stateParams / $routeParams
- abstract states and nested views
- named ui-view (multiple views)
- ui-sref / ui-sref-active
¿Planeas una migración o una plataforma de microfrontends?
En una llamada de 20 minutos me cuentas tu situación y te digo cómo la abordaría. Si todavía no vale la pena, también te lo digo.
Escríbeme por LinkedIn