在Angular 4中,如果我以FirstComponent为例,并得到类似这样的错误:ERROR TypeError: Cannot read property 'length' of undefined
您仍然可以在您的网站中导航,但如果路由到SecondComponent,HTML Dom会混淆并产生一些冲突,因此我在SecondComponent中看到FirstComponent(HTML Content)的内容。
有没有办法处理任何错误并避免这种混乱的问题?
答案 0 :(得分:0)
如果遇到异常,Angular会阻止组件呈现。这是默认错误处理程序的设计。如果您想更改此设置,则必须构建自己的错误处理程序(请查看Angular.io)。
基本上你必须创建一个实现ErrorHandler
接口的类(来自@angular/core
),然后将它作为提供者添加到你的@NgModule中。
class MyErrorHandler implements ErrorHandler {
handleError(error) {
// do something with the exception
}
}
@NgModule({
providers: [{provide: ErrorHandler, useClass: MyErrorHandler}]
})
class MyModule {}
答案 1 :(得分:0)
正如Daniel已经说过的,当Angular在模板中遇到错误时,这是默认行为。
我只想添加您所描述的错误类型,例如
ERROR TypeError: Cannot read property 'length' of undefined
是一个开发错误。它不是您的用户在生产中随时遇到的东西。通过向属性提供默认值(如空数组)或在尝试显示信息之前正确检查它们,可以轻松避免这种情况。
希望有所帮助