【问题标题】:Custom input types in angular 2+angular 2+ 中的自定义输入类型
【发布时间】:2018-06-11 23:07:33
【问题描述】:

我想为我的 Angular 2 项目使用自定义输入类型(即)<input type='dob'> 创建自定义验证。我在堆栈溢出中看到了一个问答,它有一个解决方案,但不幸的是,它是针对 angular 1 的。有人可以帮我解决这个问题吗?

提前致谢

【问题讨论】:

    标签: validation angular2-forms angular4-forms angular-forms custom-validators


    【解决方案1】:

    为验证创建一个验证器类和静态方法。

    export class CustomValidator{
    static nameValidator(control){
       //if valid return true;
      //if invalid return {'errorMsg': 'error desc'};
    } 
    }
    

    您可以像这样使用验证:

    formData = formBuilder.group({ customValidationField : [[CustomValidator.nameValidator]]  })
    

    谢谢

    【讨论】:

      【解决方案2】:

      您可以在 Angular 中使用 ReactiveFormModule,它可以让您选择构建自定义表单验证

      @NgModule({
        imports:[ReactiveFormModule,...]
      })
      ------------------------------------------------
      myFormGroup = new FormGroup({
         'dateOfBirth': new FormControl(null, [/*here an array of validations*/ this.dateValidation.bind(this)])
      })
      
      dateValidation(control: any): {[s: string]: boolean}  {
         if((<dob>control.value).value == '10/08/2017')
           return {'not_old_enough': true}; // if you want to send error
         return null;
      )
      
      ///// and in html
      <form [formGroup]='myFormGroup'>
       <input
          name="dateOfBirth"
          type="dob"
          formControlName='dataOfBirth' />
      </form>
      

      【讨论】:

        猜你喜欢
        • 2019-01-26
        • 2016-10-02
        • 2016-04-29
        • 1970-01-01
        • 1970-01-01
        • 2017-10-15
        • 2016-05-22
        • 2016-08-31
        • 2020-01-25
        相关资源
        最近更新 更多