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?