首页 > 解决方案 > 在创建 NG_VALUE_ACCESSOR 时 forwardRef 是强制性的

问题描述

我有一个自定义输入组件,它使用声明如下的提供程序实现 ControlValueAccessor。它似乎工作正常。在我可以在互联网上找到的所有教程中,只要提供 NG_VALUE_ACCESSOR,就会广泛使用 forwardRef

将以下代码发送到生产环境是否安全?

providers: [{
  provide: NG_VALUE_ACCESSOR,
  useExisting: CustomInputComponent,  //Notice I omitted forwardRef here and it works fine
  multi: true
}]

标签: angulardependency-injectioncontrolvalueaccessor

解决方案


forwardRef使 Angular 能够在定义之前注入依赖项。在这种情况下,如果此提供程序数组是在@Component您提到的自定义输入组件的装饰器中定义的,那么它将起作用,因为装饰器是在定义类之后应用的

基本上,只要您只使用它来引用同一组件的装饰器内的组件,您就可以删除。forwardRef

请参阅此处进行深入阅读


推荐阅读