验证触摸事件不适用于 Angular 5.2



我有一个输入类型,如下所示:

<input type="text" name="emaill" #emaill="ngModel" pattern="^w+([.-]?w+)@w+([.-]?w+)(.w{2,3})+$" [(ngModel)]="user.email" class="form-control input-underline" required />
<div *ngIf="(emaill.invalid && emaill.touched) || (emaill.touched && emaill.pristine)" class="error-block">
        <div [hidden]="!emaill.errors.required">Enter email</div>
        <div [hidden]="!emaill.errors.pattern">Invalid email</div>
       </div>

但似乎触摸事件不起作用,同一事件之前与angular 4.3一起工作。但是切换到angular 5后,触摸事件总是假的.当我像{{emaill.touched}}一样打印时,即使在触摸输入类型后它也总是假的。另外,如果我将输入类型"文本"更改为"密码",它工作正常。

尚未退出 "emaill.error" 触发的错误会阻止该值。检查控制台,您将看到。

为此进行更改:

   ...
   <div [hidden]="!emaill.errors?.required">Enter email</div>
   <div [hidden]="!emaill.errors?.pattern">Invalid email</div>
   ...

演示

最新更新