基类
class ErrorDisplayBaseClass{
// this.form might be indicated by any decorator or formGroup.
isFieldValid(field: string) {
return !this.form.get(field).valid && this.form.get(field).touched;
}
displayFieldCss(field: string) {
return {
'has-error': this.isFieldValid(field),
'has-feedback': this.isFieldValid(field)
};
}
// few codes here for checking all fields are validated.
}
export class UserAddComponent extends ErrorDisplayBaseComponent implements OnInit{
private signupForm: FormGroup;
ngOnInit() {
this.signupForm = this.formBuilder.group(
{
firstname: ["",Validators.required],
lastname: ["",Validators.required]
})
}
onSubmit(){
// have to check the validation when submitting.
}
子组件可能有不同的字段
子组件html
<div [ngClass]="displayFieldCss('firstname')">
<app-error-display [displayError]="isFieldValid('firstname')" errorMsg="Please check your firstname"></app-error-display>
</div>
应用程序错误显示
如果我把
isFieldValid(),displayFieldCss()
在不使用基类的childComponent中,它的工作正常。但我需要复制并粘贴到所有组件。(代码重复)。有没有什么方法可以使用基本组件来检查验证?
注:
本表格
可能由任何装饰器或窗体组指示。