Carlos Cifuentes
Referencia AngularJS → Angular

$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 · Angular
private 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

¿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