我正在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>
...
相关组件是:
export class SamplecComponent {
// Create an object with default values in the object
myobj = MyObject.constructDefault();
// Not sure why I need this...
form = new FormGroup({ });
submitForm() {
console.log(this.form.valid);
console.log('in submitForm');
}
我可以确认我的描述输入是否处于VALID或INVALID状态,但是当我提交表单时,this.form.valid值始终为TRUE。为什么呢?
同样,为什么我需要创建一个空的FormGroup?我发现的每个例子都为输入设置了初始值,但由于我使用的是已填充的模型,因此没有意义。
- - - - - - - - UPDATE
我添加了
#myform="ngForm"
到表单选择器并尝试使用
访问.ts文件中的表单状态console.log(this.myform.valid);
但是当我点击提交控制台时说:
错误类型错误:无法读取未定义
的属性“有效”
在我定义myform的html模板行上。