2

フォーム コントロールを含むコンポーネント (@ViewChild および insert() を使用) をフォーム タグでラップするコンポーネントに動的に挿入しています (同じフォーム処理で多くの異なるフォーム テンプレートを使用できるようにするため)。

これはすべて正常に動作しますが、form.valid をチェックすると、動的に挿入されたフォーム コントロールが表示されないため、常に有効です。

フォームの ngForm ディレクティブの「再初期化」を何らかの方法でトリガーして、追加のフォーム コントロールが挿入されていることを認識できますか?

注:この問題のより良い解決策は、おそらくモデル駆動型フォームを使用することだと思いますが、今のところ、すべてをやり直すには通知が短すぎます。

親テンプレート:

<form #htmlFormElement="ngForm" novalidate>
    <div #dynamicComponentContainer></div>
    <!-- more buttons and shared form controls here -->
</form>

子テンプレート :

<textarea name="comments" [(ngModel)]="formData.comments"></textarea>
4

1 に答える 1