输入焦点时如何隐藏错误消息?

Adi*_*tya 4 angular2-forms angular

我正在使用 ionic2 在 angular2 中进行表单验证。我想在用户输入无效值时停止显示错误消息,并且仅当用户在输入框外单击时才显示错误消息。

表单.html

<form>
<ion-input type="text" [(ngModel)]="username" name="username" #username="ngModel" required></ion-input>
<span *ngIf="username.touched && username.invalid && username.dirty">username is incorrect</span>
<form>
Run Code Online (Sandbox Code Playgroud)

当用户输入数字时,上面的表单显示错误消息。我想在用户输入时隐藏错误消息,即焦点输入,并在用户点击输入字段外即失去焦点时显示错误消息。

我怎样才能做到这一点?

我正在使用 angular2 的模板驱动表单方法。

AJT*_*T82 7

在此基础上的评论,你可以使用一个布尔标志,你之间进行切换true,并false在输入栏处于焦点或不在焦点。

所以声明布尔值,最初为假:

notFocused = false;
Run Code Online (Sandbox Code Playgroud)

并使用focusfocusout事件来切换你的布尔值:

<form #f="ngForm">
  <ion-input type="text" (focus)="notFocused=false" (focusout)="notFocused=true"  
     [(ngModel)]="username" name="userrname" #userrname="ngModel" required>
  </ion-input>
  <span *ngIf="userrname.invalid && notFocused">
     username is incorrect
  </span>
</form>
Run Code Online (Sandbox Code Playgroud)

闪电战