2017-10-11 4 views
-1

私は新しい角度です。私は反応型を作りました。私は更新することができるように、GET REST呼び出しの値をフォームに入力する必要があります。Angular2で更新するためにリストからフォームを取り込む方法は?

リストとフォームは異なるコンポーネントです。リストの編集をクリックすると、入力された値を持つ新しいURLが表示されます。 @Inputまたはobservablesで実装する必要がありますか?いくつかの例を指摘してください。

+0

[どのような状況下で、私はより速く答えを得るために、私の質問に、「緊急」または他の同様の句を追加できますか?]をお読みください(// meta.stackoverflow.com/q/326569) - 要約をこれはボランティアに対処する理想的な方法ではなく、おそらく回答を得ることに逆効果があるということです。これをあなたの質問に追加しないでください。 – halfer

答えて

1

リアクティブフォームのパラダイムを使用して作成されたコントロールの値を変更するには、AbstractControl#setValueまたはAbstractControl#patchValueメソッドを使用します。最初の引数は設定したい新しい値です。

ここでは、使用例を示します。

form = this.fb.group({ 
    username: '' 
}) 

ngOnInit() { 
    this.form.setValue({username: 'Name'}) 
} 

setValuepatchValueの違いはsetValueが厳しいということである:それはFormGroupの値を更新する場合に欠落や余分なフィールドを許可しません。たとえば、このように構築されたフォームが与えられているとします。

form = this.fb.group({ 
    username: '', 
    password: '', 
}) 

パスワードのみを更新したいとします。次のように動作します。

this.form.patchValue({password: '123456'}) 

しかし、我々はusername制御のために価値を提供しなかったので、次のように失敗します。

this.form.setValue({password: '123456'}) // runtime Angular error 
+0

これはうまくいった... 'onClick(id:any){ this.router.navigate(['component_name'、id.id]); } ' リストコンポーネント間にid値を通信してコンポーネントを構成します。単一のidを使用すると、URLにオブジェクト全体がロードされ、id.idを使用するとURLにidだけがロードされます。 さらに、フォームコンポーネントからオブジェクトを取得するために、フォームコンポーネントからgetコールを行うことができました。 – Ansu

関連する問題