我们希望在验证之前向用户提供需要哪个字段的视觉反馈,例如通过突出显示蓝色字段。
我们正在使用响应式表单来验证用户的输入:
export class MyFormComponent {
myForm: FormGroup;
constructor(private fb: FormBuilder) {
this.myForm = fb.group({
name: ['', Validators.required ],
city: ''
});
}
}
与模板
<form [formGroup]="myForm">
<div class="form-group">
<label>Name:
<input class="form-control" formControlName="name">
</label>
</div>
<div class="form-group">
<label>City:
<input class="form-control" formControlName="name">
</label>
</div>
</form>
稍后将根据模型生成整个模板。因此,我们希望尽可能保持模板“纯”。
但是:为了通过 CSS 突出显示必填字段,我需要输入元素上的类或属性(required )。如果 Angular 可以为 -Element 设置一个(或两者),那就太好了input
,当相应FormControl
的 Validator 被赋予required
.
在上面的例子中,我必须手动required
添加一个类或属性到-Element 以使这个 CSS 工作:required
input
.form-control[required], .form-control.required {
border-color: blue;
}
当验证器设置为相应的时,有没有办法自动将类或属性附加到 DOM-Element FormControl
?