/ /既存のフォームグループにフォームコントロールを追加する方法 - 角度2 - 角度、角度2 - テンプレート、角度2 - フォーム、角度2 - サービス

既存のフォームグループにフォームコントロールを追加する方法 - angular2 - angular、angular2-template、angular2-forms、angular2-services

私はngOninitで構築されたフォームグループを持っていますしかし、後でそのコントロールの1つをクリックすると、ngOninitの別のAPIから取得した値に基づいて、既存のフォームグループにさらにいくつかのコントロールを追加したいと思います。下の写真は実際の要件を示しています。他のロールをクリックしたときに、APIから取得した他のロールコントロールを表示したいと思います。ここに画像の説明を入力

"Angular 2"を初めて使用したので、だれかがこの問題から抜け出すのを手伝ってくれる?

回答:

回答№1は1

あなたは以下のアプローチで試すことができます。

 const arrayControl = <FormArray>this.myForm.controls["formArray"];
let newGroup = this.fb.group({
/// new controls
}
arrayControl.push(newGroup);

回答№2の場合は0

それがあなたが求めているものであれば、あなたは自分のフォームをコントロールし検証するメソッドを追加することができます。

何かのようなもの:

<button type="submit" (click)="save(f.value, f.valid)">Submit</button>

どこにあなたの save() フォームなどを検証できるメソッド。

Angular 2のフォームコントロールの詳細: https://scotch.io/tutorials/how-to-deal-with-different-form-controls-in-angular-2

更新:

Angular 2を使い慣れていないので、これは 必読 あなたのために: https://angular.io/docs/ts/latest/cookbook/dynamic-form.html

動的フォームがAngular 2でどのように動作するのか、そしてそれらをどのように実装するのかを理解することは非常に役に立ちます。

アップデート2:

私はあなたの質問をひどく理解しました。あなたが欲しいものがあなたのフォームに動的に要素を追加することであるならば、最も簡単なアプローチは使うことでしょう *ngIf 要素を動的に表示/非表示にするため。

例:

<input type="text" *ngIf="showInput"/>

ドキュメンテーション: NgIf指令