angular - 在创建 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
}]
解决方案
forwardRef
使 Angular 能够在定义之前注入依赖项。在这种情况下,如果此提供程序数组是在@Component
您提到的自定义输入组件的装饰器中定义的,那么它将起作用,因为装饰器是在定义类之后应用的。
基本上,只要您只使用它来引用同一组件的装饰器内的组件,您就可以删除。forwardRef
推荐阅读
- java - 通过套接字发送消息时出现问题
- algorithm - Root 方法在 Quick-Union 中如何工作?
- github - 我忘了'git push'
- arrays - 满 BUFFER 容量的循环队列
- c# - 显示 RabbitMQ 消息而不使用它们
- pgadmin-4 - 在mac上首次安装PG Admin 4错误
- python - Bert 使用 Transformer 的管道和 encode_plus 函数
- python - GroupBy 一个数据框记录并使用 PySpark 显示所有列
- amazon-web-services - 通过乘以 s3 Bucket 触发的 aws sqs 的策略是什么
- c++ - 在 Windows 上使用 C++ 访问最大输入延迟