处理Angular html冲突错误

时间:2018-04-15 10:10:35

标签: angular

在Angular 4中,如果我以FirstComponent为例,并得到类似这样的错误:ERROR TypeError: Cannot read property 'length' of undefined

您仍然可以在您的网站中导航,但如果路由到SecondComponent,HTML Dom会混淆并产生一些冲突,因此我在SecondComponent中看到FirstComponent(HTML Content)的内容。

有没有办法处理任何错误并避免这种混乱的问题?

2 个答案:

答案 0 :(得分:0)

如果遇到异常,Angular会阻止组件呈现。这是默认错误处理程序的设计。如果您想更改此设置,则必须构建自己的错误处理程序(请查看Angular.io)。

基本上你必须创建一个实现ErrorHandler接口的类(来自@angular/core),然后将它作为提供者添加到你的@NgModule中。

示例(来自Angular.io):

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

是一个开发错误。它不是您的用户在生产中随时遇到的东西。通过向属性提供默认值(如空数组)或在尝试显示信息之前正确检查它们,可以轻松避免这种情况。

希望有所帮助