检查url是否是angular应用的一部分



我有一个web应用程序,部分从PHP和angular-js迁移到angular(当前v13)成功登录后,将重定向到其他页面。因为我的登录页面是基于angular的,我想使用angular路由重定向到基于angular的页面,并在router-outlet下工作。并使用window.location重定向旧页面(如PHP)。

要重定向到的url是动态的。有没有一种方法可以让我确定url是否是angular应用的一部分,并且可以使用路由器导航到它?

你可以使用路由器事件。在服务或根导航组件中执行以下代码:

constructor(private router: Router) {
router.events.pipe(
filter(event => event instanceof NavigationError),
takeUntil(this.destroy),
).subscribe(.. here you should redirect with window.location);
}

如果您不需要在控制台中出现错误,只需在providers中提供自定义错误处理程序:

providers: [{
provide: ErrorHandler,
useClass: CustomErrorHandler,
}],

最后一刻:您必须从RouterModule的根路由中删除'**'路径解析。

最新更新