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 ?
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
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!