3

J'ai un PhoneNumbersFormComponent dont le modèle ressemble à:Test FormArray

<div [formGroup]="form"> 
    <div formArrayName="numbers"> 
     <input formControlName="countryPrefix"> 
     <input formControlName="number"> 
    </div> 
</div> 

Je veux passer le test par défaut créé par ng g component xxx

La première erreur de angulaire cli je suis arrivé était:

Impossible de trouver le contrôle avec le nom 'countryPrefix'

Ce que je résolus avec:

beforeEach(() => { 
    fixture = TestBed.createComponent(PhoneNumbersFormComponent); 
    component = fixture.componentInstance; 
    component.phoneNumbers = []; 
    component.form = new FormGroup({ 
     countryPrefix: new FormControl(), 
     number: new FormControl() 
    }); 
    fixture.detectChanges(); 
    }); 

Maintenant, la dernière restant erreur est:

Vous ne trouvez pas le contrôle avec « numéros » nom

Et je ne sais pas comment tester formArrayName="numbers"

Répondre

2

Essayez quelque chose comme:

let array: FormGroup[] = []; 
array.push(new FormGroup({ 
     countryPrefix: new FormControl(), 
     number: new FormControl() 
})); 
let formArray = new FormArray(array); 
component.form = new FormGroup({ 
     numbers: formArray // or array not totally sure 
}) 
+0

Génial, cela fonctionne. – gyc

+0

Votre bienvenue – Swoox