角度6:如果使用引导程序模式

时间:2020-02-12 21:48:40

标签: jquery angular twitter-bootstrap error-handling modal-dialog

考虑一个使用ErrorHandlerService类通过app.module处理所有错误的Angular应用,如下所示:

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

在ErrorHandlerService中,通过显示使用Bootstrap 4的模态构建的模态消息框来处理错误。

如果由于未使用安全导航运算符?.而导致模板绑定错误,则在显示错误模态时可以进入无限循环。

模板绑​​定错误可能是由于以下原因引起的,其中bad为null:

<div *ngIf="bad.fake"></div

运行该应用程序时,会出现如下错误: enter image description here

根据错误处理程序,将显示一个模式对话框。退出模态对话框后,Angular会再次触发更改检测,从而引起相同的事件链:模板绑定错误-> handleError->显示模态。此时,该应用程序处于无限循环中,必须重新加载应用程序或关闭浏览器才能退出。

我尝试使用https://angular.io/api/core/NgZone#runoutsideangular这种方法在Angular区域之外运行模态的显示/关闭,但是并没有使应用脱离无限循环。

创建了一个简单的Angular 6项目以在此处演示此问题:https://github.com/AneelaBrister/infinity

只需运行应用程序,单击“切换错误”即可查看问题。打开控制台。

0 个答案:

没有答案