当您更改NgModel的字段时,它会自动将model.prisitne更改为true.
当你提交表格时,它不会改变"原始",毫无疑问,这不是一个错误.
但在我的情况下,当"pristine"为真时我显示错误,当我提交表单时,我需要显示验证错误,我认为当你提交表单时,我们可以说这个表单中的字段触及了,因为你可以提交无效表格.但是在Angular2中它以不同的方式工作.
那么,在代码/组件中是否可以说表单控件/字段被触及(pristine = true)?
let email:AbstractControl = this.frm.form.controls['email'];
Run Code Online (Sandbox Code Playgroud)
设置电子邮件"prisitne"为真.
例如,我有一个表单(不是FormGroup),视图看起来像这样
<form #f="ngForm" novalidate>
<label>Email</label>
<input type="email" [(ngModel)]="player.email" class="form-control" name="email" #email="ngModel" required>
<!-- with #email code, now, in view, I have variable with name email!!! -->
</form>
Run Code Online (Sandbox Code Playgroud)
使用#email标记我声明一个名为'email'的变量,并且使用此变量我可以检查验证错误.例如
<div [hidden]="email.valid || email.pristine"
class="alert alert-danger">
email is required
</div>
Run Code Online (Sandbox Code Playgroud)
如何在组件类中访问此变量?