单击打开输入的按钮时聚焦

时间:2018-03-30 16:22:20

标签: javascript angular focus autofocus

如何专注于首先隐藏的输入,但只需点击一下按钮即可打开?自动对焦属性仅在第一次使用时才会生效,并且' nativeElement'未定义的。在jQuery上,一切都很简单,但我不需要它。

<input type="text" *ngIf="isVisible" #test autofocus>
<button (click)="testAction()">Test</button>

@ViewChild('test') test: ElementRef;
isVisible = false;
testAction() {
this.isVisible = !this.isVisible;
this.test.nativeElement.focus();
}

2 个答案:

答案 0 :(得分:0)

我做了类似于你所问的事情;但是,我是用指令做的:

import { Directive, ElementRef, Input, OnChanges } from '@angular/core';

@Directive({
  selector: '[afnFocus]'
})
export class FocusDirective implements OnChanges {
  @Input() afnFocus: boolean;

  constructor(private el: ElementRef) { }

  ngOnChanges() {
    if (this.afnFocus) {
      this.el.nativeElement.focus();
    }
  }

}

然后将指令放在元素上并将其绑定到布尔值isVisible

答案 1 :(得分:0)

另一种方法

head
相关问题