Javascript 角度2/4/5捕捉路由链接异常
我正在尝试捕获应用程序中的路由异常。基本上,用户有3种导航方式:Javascript 角度2/4/5捕捉路由链接异常,javascript,html,angular,Javascript,Html,Angular,我正在尝试捕获应用程序中的路由异常。基本上,用户有3种导航方式: 键入地址捕获很容易,只需在路由配置中键入{path:'**',重定向到:'errorPage'} 代码名为router.navigate(['pageName'])-捕获也很容易:。然后(res=>res,error=>{ //将错误记录到服务器的服务 router.navigate(['errorPage']); }); 单击具有[routerLink]=“somePath”属性的HTML元素 这是我不知道怎么抓的第三个。 如果
{path:'**',重定向到:'errorPage'}
router.navigate(['pageName'])
-捕获也很容易:。然后(res=>res,error=>{
//将错误记录到服务器的服务
router.navigate(['errorPage']);
});代码>
[routerLink]=“somePath”
属性的HTML元素如果模块由于某种原因没有加载,可能会发生这种错误。我需要能够优雅地处理这些(以及其他不可预见的事件) 澄清
在大多数情况下,通配符定义适用于路由器问题。但问题是,如果在配置的前面定义了一个路由,但它导致找不到一个模块,该怎么办!(事实上,我在develope中遇到了这个错误,这就是为什么我意识到它可能发生的原因,我们正在使用延迟加载,并且碰巧由于一些网络问题,一个必需的模块没有加载)。路由器找到一条路由,并尝试解析它,但无法解析,因为无论出于何种原因,模块未加载。通配符定义在这里没有帮助,因为路由器找到了一条路径,但无法到达它。所以它抛出了一个错误,我正试图抓住它。由于某些原因,路由器错误阻塞了整个应用程序。为什么不在路由模块中创建回退路径
const routes: Routes = [
{ path: '', component: HomeComponent },
{ path: '**', component: NotFoundComponent },
];
用户输入时,不存在的url将重定向到NotFoundComponent。为什么不在路由模块中创建回退路径
const routes: Routes = [
{ path: '', component: HomeComponent },
{ path: '**', component: NotFoundComponent },
];
用户输入时,不存在的url将重定向到NotFoundComponent。此
{path:'**',重定向到:'errorPage'}
是通配符路由定义,它定义为:
如果请求的URL与配置中先前定义的路由的任何路径不匹配,路由器将选择此路由。这对于显示“404-找不到”页面或重定向到其他路由非常有用
因此,当请求的路由与任何定义的路由不匹配时(无论是键入的还是设置的),这都应该适用于任何情况。检查routerLink定义是否正确,因为它的定义没有括号:
危机中心
此{path:'**',重定向到:'errorPage'}
是通配符路由定义,它定义为:
如果请求的URL与配置中先前定义的路由的任何路径不匹配,路由器将选择此路由。这对于显示“404-找不到”页面或重定向到其他路由非常有用
因此,当请求的路由与任何定义的路由不匹配时(无论是键入的还是设置的),这都应该适用于任何情况。检查routerLink定义是否正确,因为它的定义没有括号:
危机中心
我实际上在为routerLink使用动态值(我在此处发布时,为了清晰起见,对代码进行了编辑)。请参阅在Github上检查此问题以查看是否有帮助,我有一些类似的有趣错误,但与我的问题无关(也已修复)。我的问题不是bug,而是如何处理异常。实际上,我在routerLink中使用了动态值(为了清晰起见,我在这里发布代码时对代码进行了编辑)。请参阅在Github上检查此问题以查看是否有帮助,我有一些类似的有趣错误,但与我的问题无关(也已修复)。我的问题不是bug,而是如何处理异常。