是因为窗体控件没有被正确地绑定到Angular2的表单模块中。在Angular2中,要使用表单验证,需要在组件中引入FormsModule,并在HTML模板中使用ngForm指令来创建表单。
要解决这个问题,可以按照以下步骤进行操作:
- 在组件中引入FormsModule:import { FormsModule } from '@angular/forms';
- 在组件的NgModule的imports数组中添加FormsModule:@NgModule({
imports: [
FormsModule
],
...
})
- 在HTML模板中使用ngForm指令来创建表单,并将窗体控件绑定到表单中:<form #myForm="ngForm">
<input type="text" name="myInput" [(ngModel)]="myInputValue" required>
</form>
- 确保窗体控件的名称与ngModel绑定的属性名称一致。
这样,Angular2就能正确地读取窗体的“valid”属性,并进行表单验证。
关于Angular2表单验证的更多信息,可以参考腾讯云的相关产品AngularJS:https://cloud.tencent.com/document/product/1136/46342