2017-12-14 6 views
0

fb.array要素に対して角度2反応性形でpatchValueを使用する方法:私が反応型持っ

myForm = this.fb.group({ 
    ... 
} 

をし、私はこのような機能を持つボタンを経由してフィールドを更新:

(click)="update('someKey',someValue)" 

ことを関数は次のようになります:

update(key, value) { 
    if (key && value && this.myForm.contains(key)) { 
     this.myForm.controls[key].patchValue(value) 
    } 
} 

これはうまく動作し、私は送信によってどのフォーム要素にも同じ機能を使用できますその名前をキーとして使用します。

myForm = this.fb.group({ 
    ... 
    items: this.fb.array([]), 
} 

: -

は、しかし、今私は形でfb.array持っ

items: {"name":"", "description":"") 

をそして私は、配列が同じように値更新できるようにする必要があります。 はどうすればfb.arrayにアクセスするには

this.myForm.controls[key].patchValue(value) 

を変更できますか?私はアクセスしようとしている配列要素のインデックスを渡すことができます。

だから、のようなもの:

(click)="update(index,'someKey',someValue)" 


this.myForm.controls[items(index).controls[key].patchValue(value) 

それとも

this.myForm.get(`items${index}.${key}`).patchValue(value) 

しかし、これは正しくありません。

答えて

0

は道は常にあるので、すぐに私は別のフォーラムで答えを提示しています質問を投稿した後(andreysuperstarありがとうございます!)

this.myForm.get(`items.${index}.${key}`).patchValue(value) 

私はitems${index}

間のドットが欠落していました。

それはトリックを行います!

関連する問題