Fala aí Juan, o que você pode fazer é criar essa função de validação dentro da sua classe e acessar os outros campos do formulário, algo nesse sentido:
export class AppComponent implements OnInit {
formularioDeLogin: FormGroup;
constructor(private formBuilder: FormBuilder) {}
ngOnInit() {
this.formularioDeLogin = this.formBuilder.group({
confirmarSenha: ['', this.validarSenhas],
usuario: [''],
senha: ['']
});
}
validarSenhas = (confirmarSenha: FormControl): ValidatorFn => {
console.log(confirmarSenha.value); // imprimindo o valor da confirmação de senha
if (this.formularioDeLogin) {
console.log(this.formularioDeLogin.get('senha').value); // imprimindo o vlaor da senha
}
return null;
}
acessar() {
console.log(this.formularioDeLogin.getRawValue());
}
}
E no template:
<div style="text-align:center">
<form [formGroup]="formularioDeLogin" (submit)="acessar()">
<input formControlName="usuario" type="text"><br/>
<input formControlName="senha" type="password"><br/>
<input formControlName="confirmarSenha" type="password"><br/>
<button>Acessar</button>
</form>
</div>
Atenção: A função que será chamada pelo FormGroup
deve ser arrow function, do contrário ela não vai conseguir acessar o this.formularioDeLogin
.
Espero ter ajudado.