Essa validação do campo data de nascimento não poderia ser feita também pelo typescript do próprio cadastro e chamar uma função dentro do input de data nascimento ?
Essa validação do campo data de nascimento não poderia ser feita também pelo typescript do próprio cadastro e chamar uma função dentro do input de data nascimento ?
Oi Felipe, tudo bem?
Pedimos desculpas pela demora em obter um retorno.
Você está certo, a validação do campo de data de nascimento também poderia ser feita diretamente no TypeScript do componente, sem a necessidade de criar uma diretiva personalizada. Uma implementação alternativa poderia ser a seguinte:
import { Component } from '@angular/core';
@Component({
selector: 'app-my-component',
templateUrl: './my-component.component.html',
styleUrls: ['./my-component.component.css']
})
export class MyComponentComponent {
dataNascimento: Date;
validateDataNascimento(): boolean {
if (!this.dataNascimento) {
return false;
}
const anoNascimento = this.dataNascimento.getFullYear();
const anoAtual = new Date().getFullYear();
const anoNascMais18 = anoNascimento + 18;
return anoNascMais18 <= anoAtual;
}
}
E no template HTML:
<input type="date" [(ngModel)]="dataNascimento" (change)="validateDataNascimento()" required>
Dessa forma, você mantém a lógica no TypeScript, deixando o HTML mais limpo. Porém, a abordagem com diretivas personalizadas, como mostrado na aula, permite reutilizar a validação em outros formulários de maneira mais modular.
Espero ter ajudado, conte com o apoio do fórum :)
Um abraço e bons estudos!