访问表单 ElementRef 的“form”属性显示 TypeScript 错误

gfe*_*els 0 javascript typescript angular

我的模板中有这个表格:

<form #heroForm="ngForm" (ngSubmit)="onSubmit()">
Run Code Online (Sandbox Code Playgroud)

我将其添加为控制器中的 ViewChild:

@ViewChild('heroForm') heroForm: ElementRef;
Run Code Online (Sandbox Code Playgroud)

当我访问它的“form”属性以查看它是否有效时,它显示 TypeScript 错误“属性“form”在“ElementRef”类型上不存在。”。

if(this.heroForm.form.valid){
  this.submitted = true;
}
Run Code Online (Sandbox Code Playgroud)

我怎样才能摆脱这个错误?

Stackblitz 示例:https://stackblitz.com/edit/template-driven-form-demo-1tbb37 ?file=app%2Fuser-form%2Fuser-form.component.ts

Boo*_*lan 5

只需导入 ngForm 指令

import {NgForm} from '@angular/forms';
Run Code Online (Sandbox Code Playgroud)

更改您的表格声明

@ViewChild('heroForm', { read: NgForm }) heroForm: any;
Run Code Online (Sandbox Code Playgroud)

更改表单验证条件

if(this.heroForm.valid){
    this.submitted = true;
}
Run Code Online (Sandbox Code Playgroud)