如何配置Angular Router以在出现错误时仍更新浏览器URL

时间:2017-06-06 00:51:05

标签: javascript angular angular2-routing angular-cli

使用Angular Cli开发Angular(v4)时,我希望有以下行为:

  1. 我加载某条路线并发生错误
  2. 在报告错误之前更改/更新浏览器URL
  3. 我修复了源文件中的错误,并通过Angular CLI使用预期的URL刷新了我的浏览器
  4. 目前,当我加载目标路由并发生错误时,浏览器URL似乎会跳转到根URL。

    回到AngularJS 1.x + UI路由器时代,这是默认行为。我喜欢old行为,因为只要我开发/修复某个特定页面,我就不必进行任何导航。

    有没有办法以这种方式配置Angular v4?

1 个答案:

答案 0 :(得分:0)

在错误处理程序中路由到所需组件

无论

路线

{ 
  component: FallbackComponent, 
  path: "fallback" 
}

逻辑

try{
// some logic
}
catch{
 this.router.navigate(['/fallback'])
}

取决于您如何实施逻辑,您可以通过虚假路线传递并拥有wildcard路线,并以任何方式处理错误并拥有后退路线

{ 
  component: FallBackComponent, 
  path: "**" // this catches bogus routes and redirects (put at the end)
}

实施routeguard