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

257
Visualizações
Compruebe si se requiere NgControl

Tengo varios componentes personalizados que envuelven componentes PrimeNG por varias razones. Algunas instancias de mis componentes se utilizan en formularios reactivos, y el "requisito" del campo se establece mediante el validador Validators.required .

Los componentes de PrimeNG proporcionan un atributo required .

¿Cómo puedo inspeccionar el NgControl de mi componente para el validador requerido? Hay .disabled e .invalid , pero .invalid podría significar cualquier cosa.

Aquí tengo lo que estoy usando ahora, que funciona para los menús desplegables, pero sería incorrecto para cualquier otro tipo de entrada.

 @Component({ selector: 'my-component', templateUrl: 'my.component.html' }) export class MyComponent implements OnInit, ControlValueAccessor { @Input() public disabled: boolean @Input() public required: boolean constructor( @Optional() @Self() public ngControl: NgControl ) { if (this.ngControl != null) { this.ngControl.valueAccessor = this; } } ngOnInit() { if (this.ngControl) { this.required = this.ngControl.invalid; this.disabled = this.ngControl.disabled; } } }

Estoy seguro de que hay una mejor manera de hacer esto, pero no veo cómo.

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Intente verificar si el control tiene un validador required o no como el siguiente:

 ngOnInit() { if (this.ngControl) { this.required = this.hasRequiredValidator(this.ngControl.control); this.disabled = this.ngControl.disabled; } } hasRequiredValidator(control: AbstractControl): boolean { if (control.validator) { const validator = control.validator({} as AbstractControl); if (validator && validator.required) { return true; } } return false; }
over 4 years ago · Santiago Trujillo 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