Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

268
Visualizações
Angular crea un validador asíncrono para un nombre de usuario único

Ya codifiqué el servicio para Async Validator, pero quiero codificar una Directiva genérica para esto. Aquí está mi código;

 import { Directive } from '@angular/core'; import {AbstractControl, AsyncValidator, NG_ASYNC_VALIDATORS, ValidationErrors} from "@angular/forms"; import {Observable} from "rxjs"; import {IUser} from "app/core/user/user.model"; import {UserService} from "app/core/user/user.service"; @Directive({ "selector": '[uniqueUsername][ngModel],[uniqueUsername][FormControl]', providers: [ {provide: NG_ASYNC_VALIDATORS, useExisting: UniqueUsernameDirective, multi: true} ] }) export class UniqueUsernameDirective implements AsyncValidator{ constructor(private userService: UserService) { } validate(control: AbstractControl, currentUser?: IUser): Promise<ValidationErrors | null> | Observable<ValidationErrors | null>{ const promise = new Promise<any>((resolve, reject) => { if (currentUser?.login !== control.value) { this.userService.userExits(control.value).subscribe(user => { if (user?.login !== '') { resolve(null); } }, response => { resolve({'loginAlreadyExits': true}); }); } }); return promise; } }

Esto es lo que estoy recibiendo error;

/Users/aygunozdemir/IdeaProjects/inuka-ng/src/main/webapp/app/shared/validators/unique-username.directive.ts 10:49 se usó el error 'UniqueUsernameDirective' antes de que se definiera @typescript-eslint/no- usar antes de definir

✖ 1 problema (1 error, 0 advertencias)

Aquí está mi documento; https://weblog.west-wind.com/posts/2019/Nov/18/Creating-Angular-Synchronous-and-Asynchronous-Validators-for-Template-Validation

Además, ¿cómo puedo agregar una entrada a la directiva interna, básicamente?

 <input type="text" class="form-control" id="login" name="login" formControlName="login" uniqueUsername[???? shal I put here 'currentUser']>
about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Para usar su directiva de validación de nombre de usuario único dentro de su control de entrada de formulario, aplíquela de la siguiente manera:

 <input type="text" class="form-control" id="login" name="login" formControlName="login" uniqueUsername={{currentUser}}>

Donde currentUser es una variable dentro de su componente que desea validar.

También recuerde declarar su directiva de validación dentro de su módulo de aplicación:

 @NgModule({ declarations: [ . . . UniqueUsernameDirective ], ...
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda