angular - 角反应形式,输入错误:没有名称的表单控件的值访问器
问题描述
我有一个定义如下的输入
<form [formGroup]="loginForm"">
<ion-input [formControlName]="'email'"></ion-input>
我的组件将表单声明为
this.loginForm = this.formBuilder.group({
email: ['', Validators.compose([Validators.required, Validators.email])],
password: ['', Validators.required]
});
然而在运行时角度会抛出这个错误
错误错误:没有名称的表单控件的值访问器:“电子邮件”
我确保我的模块中同时包含 ReactiveFormsModule 和 FormsModule 导入
我还缺少什么其他想法?
解决方案
您尚未导入<ion-input>
声明的模块
详细说明
使用 Angular 9+,fullTemplateTypeCheck
设置为false
因此 Angular 不会抱怨 请参阅下面来自 github的声明 Ivy 不会抱怨 ng-template #36171 中的未知元素
这是由于 Ivy 的架构变化。在之前的编译器(ViewEngine)中,对未知元素的检查会在模板的解析过程中发生。在 Ivy 中,模板独立于相应的 NgModule 进行解析,因此范围内的组件/指令的信息不可用。相反,元素检查被推入模板类型检查阶段,并且它当前受到类型检查器配置的影响。但是,将 fullTemplateTypeCheck 设置为 true 时,它应该下降到模板中进行检查(当它为 false 时,它不会出于向后兼容性的原因)
引擎不会抱怨未知元素,但会抱怨 valueAccessor
推荐阅读
- jmeter - 小图标和字体大小变小了
- oop - 两个子班可以一起工作吗
- python - 网页不使用 python 请求和 BeautifulSoup 呈现
- docker-compose - Traefik v2 和 Odoo:无需重启即可更新容器主机
- typescript - 使用 prisma 的 typescript 类型转换
- msbuild - 如何通过某种模式 CSPOJ 排除所有文件夹?
- javascript - JavaScript 基于外部对象的排序
- javascript - 如何找到带有特殊单词的句子?(问题:缩写和点)
- windows - x86_64 中有效调用堆栈的要求是什么?
- windows - 如何在不输出版本和版权信息的情况下启动 Windows CMD?