2016-06-28 1 views
1

맞춤형 검사기를 각도 2로 구현하려면 어떻게해야합니까? 나는 클래스 MinLengthValidator처럼, 인터페이스 검사기를 구현하기 위해 더 좋을 거라 생각어떻게 Agular 2에 사용자 정의 검사기를 구현할 수 있습니까?

constructor(private fb: FormBuilder) { 
    this.form = fb.group({ 
     'singleSelection': ['Rio', [App.validateCity]] // initial value as string 
     'multipleSelection': [['Red','Blue'], [App.validateColor]] // initial value as array 
    }); 
} 

static validateCity(c: FormControl) { 
    if (c.value !== 'New York') { 
     return { citySucks: true }; 
    } 
    return null; 
} 

static validateColor(c: FormControl) { 
    if (c.value.indexOf('Green') < 0) { 
     return {badColor: true}; 
    } 
    return null; 
} 

그러나 :

나는 this plunker을 발견했다. 그러나, 나는 그것을 사용하는 방법을 모른다!

답변

1

// 제어

  this.form = fb.group({ 
      'singleSelection': ['Rio', this.text({min: 10})] 
      }); 

// 텍스트 함수를 처리하는 최소값을 처리하기

  public static text(config = {}): ValidatorFn { 
      return (control: Control): {} => { 
       if(!control) { 
        return null; 
       } 

       let c: string = control.value; 

      if(config.min) { 
       if(c.length < config.min) { 
        return { 
        "This field must have at least " + config.min + " characters." 
        }; 
       } 
      } 
      }} 
관련 문제