“NullInjectorError:没有用于NgControl的提供程序!”是一个常见的错误消息,通常出现在使用自定义控件时。该错误表示在Angular应用程序中找不到用于NgControl的提供程序。
NgControl是Angular中的一个抽象类,用于管理表单控件的状态和值。当我们在自定义控件中使用NgControl时,需要确保正确地提供NgControl的实例。
要解决这个错误,可以采取以下步骤:
import { NgControl } from '@angular/forms';
constructor(private ngControl: NgControl) { }
<input type="text" [(ngModel)]="value" [ngModelOptions]="{standalone: true}">
在上面的代码中,ngModel指令将NgControl与表单控件进行绑定,并使用ngModelOptions设置standalone选项为true,以确保NgControl不依赖于外部表单。
@Component({
...
providers: [{ provide: NgControl, useExisting: forwardRef(() => CustomControlComponent) }],
...
})
在上面的代码中,我们使用provide和useExisting选项将NgControl实例提供给自定义控件组件。
总结起来,解决“NullInjectorError:没有用于NgControl的提供程序!”错误的关键是正确导入NgControl类,注入NgControl实例,正确绑定NgControl,并在自定义控件组件的providers数组中提供NgControl实例。
腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云