Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

217
Views
No obtengo el retorno de la validación cruzada a formularios basados en plantillas

Estoy tratando de ser true para regresar cuando las contraseñas no son las mismas.

mi componente

 this.restrict = new FormGroup({ email: new FormControl(this.user.email), newPassword: new FormControl ('', [Validators.required, Validators.pattern('(?=\\D*\\d)(?=[^az]*[az])(?=[^AZ]*[AZ]).{6,30}')]), confirmPassword: new FormControl(null, [Validators.required, Validators.minLength(6)]), }, {validators: this.pwdMatchValidator}); get newPassword() { return this.restrict.get('newPassword');} get confirmPassword() { return this.restrict.get('confirmPassword');} pwdMatchValidator(frm: FormGroup) { let pass = frm.get('newPassword').value; let confirmPass = frm.get('confirmPassword').value; console.log(pass); console.log(confirmPass); return pass === confirmPass ? null: { notSame: true}; }

en la plantilla que tengo

 <p-password formControlName="confirmPassword"></p-password> <small class="p-error" *ngIf="confirmPassword.hasError('required')">No puede estar vacio</small> <small class="p-error" *ngIf="confirmPassword.hasError('minlength')">Debe ser de hasta 6 caracteres.</small> <small class="p-error" *ngIf="confirmPassword.hasError('notSame', 'passwords')">Las contraseñan son diferentes.</small> <button pButton pRipple label="Save" icon="pi pi-check" class="p-button-text" [disabled]="!restrict.valid"></button>

Actualmente la respuesta que obtengo siempre es false .

El concole.log(pass); y console.log(confirmPass); funcionan y el botón Guardar aún está deshabilitado porque el campo no se validó, entonces, ¿cómo puedo obtener notSame ? Lo intenté:

 {{ restrict.get('confirmPassword').errors?.notSame }} {{ restrict.get('confirmPassword').errors }} {{ confirmPassword.hasError('notSame') }}

En ejemplos angulares, muestran una forma que en mi caso (angular 12) no funciona

En la documentación de Angular no puedo encontrar un concepto satisfactorio de cómo manejar las devoluciones, ¿podría explicarlo?

over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

Su validador está configurado en FormGroup , no en el control de confirmPassword , por lo que la verificación que debe hacer es en realidad en el formulario principal:

 <small ngIf="restrict.hasError('notSame')">...</small>

Apilar

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!