【问题标题】:Angular reactive forms, input Error: No value accessor for form control with name角反应形式,输入错误:没有名称的表单控件的值访问器
【发布时间】:2023-03-27 13:45:01
【问题描述】:

我的输入定义如下

    <form [formGroup]="loginForm"">
      <ion-input [formControlName]="'email'"></ion-input>

我的组件将表单声明为

this.loginForm = this.formBuilder.group({
  email: ['', Validators.compose([Validators.required, Validators.email])],
  password: ['', Validators.required]
});

但在运行时 angular 会抛出此错误

错误错误:表单控件没有值访问器,名称为:'email'

我已确保我的模块 Import 中有 ReactiveFormsModule 和 FormsModule

我还缺少什么其他想法?

【问题讨论】:

    标签: angular typescript angular-reactive-forms


    【解决方案1】:

    您尚未导入声明 &lt;ion-input&gt; 的模块

    详细说明

    在 Angular 9+ 中,fullTemplateTypeCheck 设置为 false,因此 Angular 不会抱怨请参阅来自 github Ivy is not complaining about unknown element inside ng-template #36171 的以下声明

    这是由于 Ivy 的架构更改所致。在之前的编译器(ViewEngine)中,对未知元素的检查会在模板的解析过程中发生。在 Ivy 中,模板独立于相应的 NgModule 进行解析,因此范围内的组件/指令的信息不可用。 相反,元素检查被推入模板类型检查阶段,并且它当前受到类型检查器配置的影响。但是,将 fullTemplateTypeCheck 设置为 true 时,它​​应该下降到模板中进行检查(当它为 false 时,它​​不会出于向后兼容性的原因)

    引擎不会抱怨未知元素,但会抱怨 valueAccessor

    【讨论】:

    • 谢谢,这是一个令人沮丧的错误信息,哈哈
    猜你喜欢
    • 2020-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-24
    相关资源
    最近更新 更多