Немного о резолверах в Angular 19 (теперь в них есть редиректы).
В логике использования гвардов применяется подход:
проверить что-то, если все ок то вернуть true или кинуть редирект на другую страницу
Выглядит достаточно удобно. Но если мне не изменяет память в резолверах такого нет, вместо этого приходилось натягивать Router и рулить navigate или navigateByUrl и т.д.
В 19 же версии нам немного упростили жизнь и резолвер научили в RedirectCommand.
Пример с angular.dev
export const heroResolver: ResolveFn<Hero>= async (
route: ActivatedRouteSnapshot,
state: RouterStateSnapshot,
) => {
const router = inject(Router);
const heroService = inject(HeroService);
try {
return await heroService.getHero(route.paramMap.get('id')!);
} catch {
return new RedirectCommand(router.parseUrl('/404'));
}
};
Ну просто сказка какая-то, а не только сигналы =)