我使用的是Angular 4,我在控制台得到了一个错误:
不能绑定到ngModel,因为它不是input的已知属性
我该如何解决这个问题?
我使用的是Angular 4,我在控制台得到了一个错误:
不能绑定到ngModel,因为它不是input的已知属性
我该如何解决这个问题?
当前回答
如果你想对表单输入使用双向数据绑定,你需要在Angular模块中导入formsmodule包。要了解更多信息,请参阅Angular 2官方教程和表单的官方文档
在app.module.ts中添加以下行:
import { FormsModule } from '@angular/forms';
[...]
@NgModule({
imports: [
[...]
FormsModule
],
[...]
})
其他回答
我在用Karma/Jasmine测试Angular 6应用时遇到了这个错误。我已经在顶层模块中导入了FormsModule。但是当我添加一个使用[(ngModel)]的新组件时,我的测试开始失败。在这种情况下,我需要在我的TestBed TestingModule中导入FormsModule。
beforeEach(async(() => {
TestBed.configureTestingModule({
imports: [
FormsModule
],
declarations: [
RegisterComponent
]
})
.compileComponents();
}));
我的答案是ngModel的拼写错误。我把它写成这样:ngModule,而它应该是ngModel。
所有其他尝试显然都未能为我解决这个错误。
在你的NgModule导入中添加FormsModule(因此ngModel是FormsModule的一部分)。
注意,它可以是AppModule,也可以是通过惰性加载加载的特性模块。
imports: [
...,
FormsModule,
...
]
在angular 7中,你必须导入“ReactiveFormsModule”。
import {FormsModule, ReactiveFormsModule} from '@angular/forms';
我通过这个导入解决了这个问题。这对你有帮助。
首先导入FormsModule,然后在component.ts中使用ngModel
import { FormsModule } from '@angular/forms';
@NgModule({
imports: [
FormsModule
];
HTML代码:
<input type='text' [(ngModel)] ="usertext" />