問題タブ [formarray]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
1695 参照

angular - Angular Reactive Forms でネストされた FormArrays を使用してオブジェクトを FormGroup に変換します

次のようなキー値として配列を含む非常に複雑な json オブジェクトをバックエンドから取得しています。

このオブジェクトをリアクティブ フォームに入力する必要があります。したがって、私の ngOnInit 関数では、フォームを初期化し、サービスから配列データを取得します。次に、このデータを「convertToFormGroup」関数に渡して、単純なオブジェクトからこのネストされた FormArrays を作成します。この関数の問題は、これが 1 レベルの深さでしか機能しないことです。API は将来変更される可能性があり、FormArray 内に別の FormArray が必要になるのではないかと心配しています。これは完全に間違ったアプローチだと思いますか?そして、ネストされた配列を持つオブジェクトを、ネストされた FormArray を持つ FormGroup に変換する方が簡単なはずです。そのための既存の機能はありますか?私はAngularを初めて使用するので、躊躇しないで私を批判してください。

0 投票する
1 に答える
2560 参照

angular - Angular Reactive Forms: mat-select の FormArray

下の図に示すように、マット選択コントロール (CoordinatorX) の FormArray を使用してフォームを作成する必要があります。

ここに画像の説明を入力

上記のフォームを生成するコードは次のとおりです。

component.html:

component.ts:

この時点まで、それはうまく機能します。3 つのコントロールのいずれかからオプションを選択できますmat-select

しかし、次のコードで別のコーディネーターを動的に追加してみます。

期待どおりに新しいコントロールを追加します。しかし、それをクリックすると、オプションが表示されません。さらに動的に追加されたmat-selectコントロールが正しく機能しません。

何か助けてください。

PS: Angular マテリアル コントロールを使用しています