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

138
Views
La nueva entrada no cambia la propiedad de desactivación de FormGroup en el subcomponente

Tengo dos componentes Padre e Hijo.

Parent almacena el estado del formGroup utilizado en el componente secundario. Cada vez que recibo nuevos datos de una fuente externa, paso estos datos a través de la plantilla y construyo un nuevo FormGroup y decido en función de una propiedad si FormGroup está habilitado o deshabilitado. Los nuevos datos se cambian como quiero, pero el estado deshabilitado/habilitado no.

Mi código:

Componente hijo

 @Input() edvForm: FormGroup; @Input() isBlocMainSupport: boolean; @Input() data: Data; ngOnChanges(changes: SimpleChanges): void { this.setForm(); } setForm() { ... this.edvForm.addControl( 'supportType', new FormControl({ value: supportType, disabled: !this.isBlocMainSupport }) ); }

Componente principal

 edvForm: FormGroup; isBlocMainSupport = true; data: Data; ... ngOnInit(): void { this.sourceEvent$ .pipe(takeUntil(this.destroy$)) .subscribe(newData => { this.newGraphicElements([newData]); }); } ... newGraphicElements(newData: Data[]) { this.reset(); ... this.data = newData[0]; this.isBlocMainSupport = myCondition ? true : false; } ... reset() { this.edvForm = new FormGroup({}); }

Plantilla principal

 <child-comp *ngIf="isTheRightChild" [data]="data" [edvForm]="edvForm" [isBlocMainSupport]="isBlocMainSupport" ></child-comp>

Para resumir, los datos se pasan bien y cambian cada vez que es necesario. Pero, el estado de deshabilitación no se aplica con: "deshabilitado: !this.isBlocMainSupport"

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Encontré la solución en github: formGroup disabled()/enable() no funciona justo después de init #22556

El problema es el detector de cambios. El siguiente código está funcionando:

 this.changeDetector.detectChanges(); // use it before using disable/enable this.form.controls['name'].disable();
about 4 years ago · Juan Pablo Isaza 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!