Boa Tarde, Gostaria de saber se há um modo de realizar a requisição com API somente após eu sair do campo ou caso submeter o formulário e tiver inválido não salvar, ao invés do debounceTime que é por tempo !? Obrigado.
Boa Tarde, Gostaria de saber se há um modo de realizar a requisição com API somente após eu sair do campo ou caso submeter o formulário e tiver inválido não salvar, ao invés do debounceTime que é por tempo !? Obrigado.
Fala aí Gabriel, beleza? É possível sim, você pode estar utilizando o blur
, por exemplo:
<input (blur)="realizarRequisicao()">
Espero ter ajudado
Olá Gabriel, é possível sim, você pode utilizar o focusout para realizar alguma ação quando o usuário retirar o foco do seu input. Por exemplo:
<input (focusout)="funcao()">
Espero ter ajudado em algo,
Abçs.
Está é a tag que irá chamar a função assíncrona
<!-- Início Tag CPF -->
<div class="col-sm-6">
<div class="form-group">
<label for="cpf">CPF</label>
<input formControlName="profissionalCpf" type="text" class="form-control" mask="000.000.000-00" placeholder="Digite um cpf válido...">{{CPF | mask: '000.000.000.99'}}
<!-- Mostra Mensagem de Validação Caso Não Preencha a CPF -->
<gc-mensagem-validacao *ngIf="profissionalForm.get('profissionalCpf').errors?.required && form.submitted"
mensagem="{{ mensagemGenerica.profissionalCpf }}"></gc-mensagem-validacao>
<!-- Mostra Mensagem de Validação Caso o CPF Não Seja Válido (Assincrono) -->
<gc-mensagem-validacao *ngIf="profissionalForm.get('profissionalCpf').errors?.cpfValido"
mensagem="{{ mensagemGenerica.profissionalCpfValido }}"></gc-mensagem-validacao>
</div>
</div> <!-- Fim Tag CPF -->
ai no componente tenho o seguinte chamado da função assíncrona na validação:
profissionalCpf: ['',
Validators.required
// this.cpfValidadorServico.ValidaCpfAssincronoProfissional()
],
tudo como em aula. e no validador possuo o seguinte código:
ValidaCpfAssincronoProfissional() {
return (controle: AbstractControl) => {
return controle
.valueChanges
.pipe(debounceTime(300))
.pipe(switchMap(cpf =>
this.cadastroProfissionalServico.ValidaCpfAssincronoProfissional(cpf)
))
.pipe(map(valido => valido ? {cpfValido: true} : null))
.pipe(first());
}
}
no caso do validador, onde está o debounceTime(300) que é apos 300 ms ele envia a requisição gostaria de enviar a resquisição somente após a saída dele do input. é do mesmo formato ? que mandaram, pois chamo a função de validação como a das aulas.
Então Gabriel, para validar apenas na saída do input
, faz no blur
.
Espero ter ajudado
Matheus agora eu entendi :D. vlws :D antes tinha ficado meio confuso, mais ja consegui compreender. :D depois de um tempo heheheh. obrigado. aos dois que se propuseram a me ajudar.
Magina, precisando não deixe de criar suas dúvidas.