代码之家  ›  专栏  ›  技术社区  ›  varman

如何在验证表单时使用继承将值传递给基类

  •  0
  • varman  · 技术社区  · 7 年前

    基类

    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中,它的工作正常。但我需要复制并粘贴到所有组件。(代码重复)。有没有什么方法可以使用基本组件来检查验证?

    注: 本表格 可能由任何装饰器或窗体组指示。

    0 回复  |  直到 7 年前
    推荐文章