1
resposta

FormGroup Angular

Olá, sou novo em angular e gostaria de saber como utilizo mais de uma validação esterna com o FormGroup. Atualmente meu código está da seguinte maneira...


constructor(fb: FormBuilder, public router: Router){
        //Grupo de formulario - Validações
        this.myForm = fb.group({
            nome: ['', Validators.required ],
            email: ['', Validators.compose([Validators.required, Validators.pattern(this.emailPattern)])],
            cpf: ['', Validators.required ],
            telefone: ['', Validators.required],
            cep: ['', Validators.required]
        }, { validator: VwPagePersonal.validaNome });
    }

    //Validações customizadas
    static validaNome(group: AbstractControl): {[Key: string]: boolean} {
        const nome = group.get('nome');

        if(!nome){
            return undefined;
        }

        var regexp = /\b[^\d\s]+\b/g;
        var count = 0;
        while (regexp.exec(nome.value))++count;

        if (count === 1) {
            return { nomeInvalid:true }    
        }

        return undefined;    
    }

    static validaCpf(group: AbstractControl): {[Key: string]: boolean} {
        const cpf = group.get('cpf').value;

        if(cpf === 1){
            return { nomeInvalid:true }    
        }

        return undefined;
    }

Tenho duas funções externas, uma é: 'ValidaNome' e a outra 'ValidaCpf'!! Porem só estou conseguindo utilizar uma das validações nessa sintax ", { validator: VwPagePersonal.validaNome });", que esta no formGroup!!

1 resposta

Você já utilizada mais de um validator por campo:

  email: ['', Validators.compose([Validators.required, Validators.pattern(this.emailPattern)])],

Basta seguir a fórmula.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software