2016-09-02 12 views
1

その中に配列を持つ配列を作成しようとしています。プロパティ 'プッシュ'がタイプ 'コントロール'に存在しません

配列は動的フォーム用です。したがって、ユーザーが新しいセクションを追加したい場合、コントロールフィールドの配列を配列にプッシュし、それをAngular2で生成します。

しかし、私はこのエラーを取得しています:で提案されているように、私は(<Control>this.addForm.controls['design']).pushをやって試してみましたが、フォーム

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([]) 
     }) 
    } 

を初期化、

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) 
    })); 
} 

私のコンストラクタ: Error:(43, 41) TS2339: Property 'push' does not exist on type 'AbstractControl'.

が、これは私のコードですAngular2の問題5871が、これで解決されていません。

私はむしろ(プッシュ宣言が必要です)ControlArrayにキャストしようとし、制御するためのキャストよりも、活字体とAngular2 beta.17

答えて

2

を使用しています。

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

お返事のおかげで、それがその図に従って問題ないはずです、そして、それは仕事をしても... http://i.stack.imgur.com/cAGjX.jpgこの画像をチェックし、それがアレイ上のを押します、私は言及することを忘れたが、エラーは私のtypescriptコンパイラのチェックでinteferringです。私はaddControlの使用を試みましたが、配列の取り扱いが好きではありません。しかし、ありがとう! –

+0

前に行っていたキャストを試してみてください。 '( this.addForm.controls ['design'])' do '( this.addForm.controls ['design'])' – Paarth

+0

あなたは凡例!私はなぜそれほど感謝していないのか分からない!メインの投稿を編集すると、同じ問題がある場合は他の人のために正しいものにチェックすることができます –

関連する問題