Angular 模型不工作时的角度4表单验证

Angular 模型不工作时的角度4表单验证,angular,validation,Angular,Validation,我正在Angular 4中创建我的第一个表单,并希望同时进行输入和表单验证。我正在尝试使用模板驱动的表单。我创建的表单如下所示: <form novalidate [formGroup]="form" (ngSubmit)="submitForm()"> <div class="form-group"> <label for="description">Description</label> <input ty

我正在Angular 4中创建我的第一个表单,并希望同时进行输入和表单验证。我正在尝试使用模板驱动的表单。我创建的表单如下所示:

<form novalidate [formGroup]="form" (ngSubmit)="submitForm()">
    <div class="form-group">
      <label for="description">Description</label>
      <input type="text" class="form-control" id="description" name="description" maxlength="255" minlength="5" required [(ngModel)]="myobj.description"  #desc="ngModel" >
    </div>
    ...
我可以确认我的描述输入是否处于有效或无效状态,但当我提交表单时,this.form.VALID值始终为TRUE。为什么?

还有,为什么我需要创建一个空的FormGroup?我发现的每个示例都为输入设置初始值,但由于我使用的是已填充的模型,所以这没有意义

-----更新------
我补充说

转到表单选择器,并尝试使用访问.ts文件中的表单状态

console.log(this.myform.valid);
但当我单击“提交”时,控制台会显示:

错误类型错误:无法读取未定义的属性“valid”


在我定义myform的html模板行上。

您使用的是模板驱动的表单还是被动的?如果使用模板,则可以通过局部变量(如#myForm=“ngForm”)引用表单,并检查其是否有效,如果使用的是反应式表单,则需要为如下元素定义验证。myForm=new FormGroup({'name':new FormControl('',[Validators.required,Validators.minLength(4)]),您混淆了两个方向:模板驱动表单(在模板中使用
ngModel
)和模型驱动表单(又称被动表单,需要
新表单组(…)
在代码中。鉴于此,您最感兴趣的是查找有关这两种样式的文章,并决定使用其中一种样式。可以在此处找到其中一种样式。看一看:我正在使用模板驱动的表单(并更新了我的问题).我已经重读了几次文档,但我不清楚这一点:我可以创建一个模板驱动的表单,然后添加反应式验证器吗?
#myform="ngForm"
console.log(this.myform.valid);