を介してプログラムでインスタンス化されているフォームがありますDynamicComponentLoader::loadIntoLocation
。フォームコードは以下です。
constructor (
private _builder: FormBuilder
) {
this.editForm = _builder.group({
name: ['', Validators.required],
email: ['', Validators.compose([Validators.required, Helpers.emailValidator])],
phone: [''],
phoneAlt: [''],
location: [''],
dob: [''],
bio: [''],
});
}
一部のフォームにはバリデータがないことに気付くでしょう (私が知る限り、これは を使用する場合と同じValidators.nullValidator
です。両方でテストしました)。
私のテンプレートには、次のコードがあります(コントロールごとに):
<label for="phone">Contact Number <span *ngIf="!phone.valid">- {{e(phone)}}</span></label>
<input type="text" name="phone" id="phone" ngControl="phone" #phone="ngForm">
バリデーターを持たない最初のコントロール!phone.valid
は、テンプレートの一部にヒットすると、次の例外を 2 回スローします。
EXCEPTION: Expression '!phone.valid in e@15:43' has changed after it was checked. Previous value: 'true'. Current value: 'false' in [!phone.valid in e@15:43]
コントロールに触れたりthis.editForm
、最初の作成後に触れたりすることはないので、私のコードに関する限り、何も変更する必要はありません。
呼び出すことでエラーを抑制できることは承知していenableProdMode()
ますが、問題を非表示にするよりも問題を修正したいと考えています。
編集 (2 月 8 日):モーダルの内容を別のページに移動しようとしましたが、エラーは解決しません。これは、問題がモーダルを作成およびロードする方法に関連しているのではなく、ControlGroup または FormBuilder に関連していることを示唆しています。