使用参数构造函数创建组件时出错

时间:2017-08-09 08:25:10

标签: angular components

我有一个像这样的简单component

@Component({
  selector: 'error-handler',
  templateUrl: './error-handler.component.html',
  styleUrls: ['./error-handler.component.css']
})
export class ErrorHandlerComponent  {

  constructor(public error?: any) { }
}

当我去浏览器时出现错误:

Uncaught Error: Can't resolve all parameters for ErrorHandlerComponent: (?).

我在模块中注册了我的新component,因此我不知道为什么会出现此错误。我还没有从任何地方调用构造函数。

1 个答案:

答案 0 :(得分:0)

组件(或指令,管道或服务)中的构造函数参数将尝试由依赖项注入器注入。将您的组件更改为:

@Component({
  //...
})
export class ErrorHandlerComponent  {

  public error: any

  constructor() {}
}

或使用@Optional()装饰器:

@Component({
  //...
})
export class ErrorHandlerComponent  {

  public error: any

  constructor(@Optional()public error?: any) {}
}

<击>

当您的类型为any

时,

可选不起作用