2016-12-07 11 views
4

NgModelのフィールドを変更すると、model.prisitneが自動的にtrueに変更されます。Angular2:コード内のNgModelの元の変更方法は?

フォームを送信しても、「原始的な」変更はありません。問題はありませんが、これはバグではありません。

私の場合、「原始」が真であるときにエラーを表示し、フォームを送信するときに検証エラーを表示する必要があります。フォームを送信すると、このフォームのフィールドがタッチされた無効なフォームを送信できないためです。しかしAngular2では、別の方法で動作します。

したがって、フォームコントロール/フィールドがコード/コンポーネントで触れられている(pristine = true)と言う方法はありますか?

let email:AbstractControl = this.frm.form.controls['email']; 

「prisitne」という電子メールを設定します。

+0

手付かずの状態に制御を設定?達成しようとしていること、試したこと、失敗した場所を示すコードを質問に追加してください。 –

+0

コード行を追加します。 –

+1

私はあなたが元気と触れたことについて間違った理解を持っていると思います。 1)両方とも同じではありません.2)入力値を変更すると、pristineはfalseになります。 – micronyks

答えて

4

制御を取得するには、この短いメソッドを使用することができます。

あなたは、以下のコードを参照するために

this.frm.form.controls['email'].pristine; 
this.frm.form.controls['email'].touched; 

を任意の状態を確認することができます。このplunkerをチェックし、ボタンをクリックしてください。角度v4.4.5のよう

https://plnkr.co/edit/mJFftirG3ATDpnJRWmKN?p=preview

0

markAsDirty()

markAsPristine()制御素の状態を除去するものコードで

関連する問題