0

いいえ、私は単一の反応性フォームコンポーネントを作成しました。 たとえば、フォームがアドレスフォームであるとします。角度反応型:1つのフォームコンポーネントに対してサービスを動的に呼び出す方法

今私が上addressFormを呼び出したい特定の反応性アドレス形式のデータモデルは、

export interface Address { 
addressId: number; 
addressTypeValueId: number; 
addressLine1: string; 
addressLine2: string; 
addressLine3: string; 
postalId: number; 
cityId: number; 
stateCode: string; 
countryCode: string; 
primaryInd: string; 
createDatetime: Date; 
updateDatetime: Date; 
createUserId: number; 
updateUserId: number; 

}

であり、私が作成したリアクティブフォームは

addressForm = new FormGroup ({ 
    name: new FormControl() 
}); 

です異なるコンポーネント。 たとえば、私は3つの異なるコンポーネントを持っています。学校、大学、病院を教えてください。

これらの3つのコンポーネントはすべて、3つの異なるデータモデルと3つの異なるサービスを備えています。 postSchoolpostCollegepostHospital

Iは、これらの3つの異なる成分に{form_component}を添加した後、それぞれのモデルにデータを送信することがあります。

サービスを動的にバインドする方法がわかりませんボタンをサブミットしてフォームに送信してください。呼び出されたコンポーネントに応じて適切なサービスを呼び出す必要があります。

+0

内の同じformGroupへのアクセスを得、そのコンストラクタにこのサービスをインポートすることができformGroup及びこれらの3つのコンポーネントが含まれているサービス/プロバイダを持つことができます。しかし、フォームに特定のコンポーネントを追加するので、異なるコンポーネントは明らかに使用するサービスを知っています。そして、おそらく、汎用フォームコンポーネントの代わりにそれらのコンポーネントを実際に提出することを委任することを検討すべきです –

答えて

1

これらの3つのコンポーネントが一緒に親コンポーネントにある場合は、親コンポーネントにaddressFormがあり、これら3つのコンポーネントのそれぞれに@inputとして受信できます。可能でない場合は、親コンポーネントでそれらをラップしようとします。

また、私は苦労あなたの問題を理解しているサービス

関連する問題