Angular 2:可以将焦点放在一个事件中吗?

Cha*_*har 9 events show hide angular

可以focusin并且focusout在一个事件中吗?那叫什么呢?如果没有,有没有办法在一个函数中合并它?

hide(e:any) {
  $('.suggestion').hide();
}
show(e:any) {
  $('.suggestion').show();
}
Run Code Online (Sandbox Code Playgroud)
<section class="search-bar-wrapper" (focusout)="hide($event)" (focusin)="show($event)">
Run Code Online (Sandbox Code Playgroud)

Mr_*_*ect 19

首先,您需要添加tabindex属性section以使其获得焦点事件.否则,它将不会获得焦点事件.

当元素可聚焦时,会触发焦点事件.每次单击元素时,它总是被聚焦,我们只能在元素外部单击时删除焦点.因此,我们无法将重点放在click同一元素的事件上.

focus并且focusout两者都是我们无法合并它们的不同事件

您可以使用*ngIf

<section class="search-bar-wrapper" tabindex="-1" (focus)="show($event)" (focusout)="hide($event)">

<div class="suggestion" *ngIf="canSee">This is a suggestion</div>
Run Code Online (Sandbox Code Playgroud)

在组件的类中

casSee: boolean = false;

show(e: any) {
   this.canSee = true;
}
hide(e: any) {
   this.canSee = false;
}
Run Code Online (Sandbox Code Playgroud)


Dee*_*ain 6

您可以在Angular 2/4中使用(focus)(focusout)