を引き起こし検証私は次のバリデータメソッドを持っています。ExpressionChangedAfterItHasBeenCheckedError
static emptyControl(control: FormControl): any {
if (!control.value || control.value=="") {
return {
message: "must not be empty"
};
}
return null;
}
私は、フォームのコントロールでこれを使用すると、私はエラーを取得する:ExpressionChangedAfterItHasBeenCheckedError: Expression has changed after it was checked. Previous value: 'false'. Current value: 'null'.
私が代わりにヌルのエラーを返す場合は、エラーが消えます。
最初に入力を初期化されていない変数にバインドしてから、ngOnInitで非同期呼び出しを行い、返された値をsubscribe内のこの変数に代入します。
空のフィールドまたは未設定のフィールドを検証する正しい方法は何ですか?
:
TSをあなたは空をチェックするので、vあなたは角度変化の検出が適用される前でも変更されています。「空のフィールドをチェックするためにこれを行う必要があります。」 –
Angularはフォームバリデーターに組み込まれていますが、Requiredは基本的に空ではありません。 https://angular.io/api/forms/RequiredValidator – Zuriel
は、組み込みバリデーターを試しました。同じエラーが2回発生します。 – aycanadal