【问题标题】:How do you catch errors from resolvers when the source is an external website?当源是外部网站时,如何从解析器中捕获错误?
【发布时间】:2017-02-16 21:31:07
【问题描述】:

Angular 2 有一个解析器的想法。您加载资源,然后加载页面。您可以通过抛出错误来停止加载。如果从另一个页面导航到资源并使用 navigate(...).catch(...) ,则此方法非常有用,但如果您从外部位置导航到该位置,则无需处理捕获。任何人都知道如何在角度路由器中循环处理发生的任何错误?

谢谢, 布赖恩

【问题讨论】:

  • 稍微澄清一下这个问题:我的路由器中有一个解析器。如果解析资源出错,则会引发异常。案例 1. 这很好用:navigate("Mypage").catch(myErrorHandlingFunctionality()) 案例 2. 这不起作用:用户在他们的网络浏览器中导航到:mywebsite/mypage 因为没有绑定逻辑来捕获错误在案例 2 中。任何人都知道我可以将案例 2 的错误处理逻辑放在哪里,因为当用户手动键入 URL 时我没有使用 navigate()?

标签: angular


【解决方案1】:

我找到了我的问题的解决方案,并认为我会发布它以防它帮助其他人。

Angular 2 有一个 ErrorHandler api -- https://angular.io/docs/ts/latest/api/core/index/ErrorHandler-class.html

此 API 允许您覆盖 Angular 中的默认错误处理,以便您可以实施自己的解决方案来从错误中恢复。该解决方案可以本地化到应用程序的各个模型。每当抛出异常时,它就会被捕获并传递给 ErrorHandler 实现进行解析。

【讨论】:

  • 但它不使用路由器或http服务或任何服务,因为它首先被加载,有什么信息吗?还处理错误被调用两次。我需要发送邮件
猜你喜欢
  • 1970-01-01
  • 2019-02-05
  • 1970-01-01
  • 2017-05-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多