2016-09-02 4 views
1

Ich versuche ein Array zu erstellen, das Arrays enthält.Property 'push' existiert nicht für den Typ 'Control'

Das Array ist für ein dynamisches Formular. Wenn der Benutzer also einen neuen Abschnitt hinzufügen möchte, verschiebt Push das Array der Kontrollfelder an das Array und generiert es in Angular2.

Allerdings erhalte ich diese Fehlermeldung: Error:(43, 41) TS2339: Property 'push' does not exist on type 'AbstractControl'.

dies ist mein Code:

addDesign(){ 
    this.addForm.controls['design'].push(this.fb.group({ 
     name: this.fb.control(null, Validators.required), 
     a1: this.fb.control(null, Validators.required), 
     a2: this.fb.control(null, Validators.required), 
     a3: this.fb.control(null, Validators.required), 
     a4: this.fb.control(null, Validators.required), 
     a5: this.fb.control(null, Validators.required), 
     maxMark: this.fb.control(null, Validators.required) 
    })); 
} 

Mein Constructor, Initialisierung der Form

constructor(private fb: FormBuilder, private auth: Auth, private authHttp: AuthHttp) { 
     this.addForm = fb.group({ 
      name: fb.control(null, Validators.required), 
      assignID: fb.control(null, Validators.required), 
      design: new ControlArray([]) 
     }) 
    } 

ich versucht habe zu tun (<Control>this.addForm.controls['design']).push wie vorgeschlagen in Angular2, Ausgabe 5871, aber das hat es nicht gelöst.

Ich bin mit Typoskript und Angular2 beta.17

Antwort

2

Anstatt zu steuern, Gießen, versuchen zu ControlArray Gießen (was haben Push erklärt sollte).

(<ControlArray>this.addForm.controls['design']) 
+0

Vielen Dank für Ihre Antwort .. http://i.stack.imgur.com/cAGjX.jpg dieses Bild zu überprüfen, obwohl es in diesem Diagramm nach sollte in Ordnung sein, und es es ist nicht funktioniert, drücken Sie das Feld auf Ich habe vergessen zu erwähnen, aber der Fehler bezieht sich auf meine Typoskript-Compiler-Prüfung. Ich habe versucht, addControl zu verwenden, und es mag nicht die Handhabung von Arrays. Trotzdem danke! –

+0

Okay. Versuchen Sie die Besetzung, die Sie zuvor gemacht haben, aber anstelle von '' this.addForm.controls ['design']) 'do' ( this.addForm.controls ['design']) ' – Paarth

+0

Sie Legende! Ich weiß nicht, warum ich nicht viel daran dachte, vielen Dank! Wenn Sie Ihren Hauptbeitrag bearbeiten, kann ich ihn als korrekt für andere markieren, wenn sie das gleiche Problem haben –

Verwandte Themen