フォーム コントロールを含むコンポーネント (@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>