Angular / PrimeNg:每次打开p对话框时都专注于输入

时间:2018-11-08 10:06:34

标签: angular angular6 primeng

我想自动对焦p对话框组件中的某个输入字段, 通过绑定到对话框的visible属性的标志来打开/关闭该标志。

当我在输入标签中添加“自动对焦”属性时-仅在第一次打开对话框时才对其进行对焦。

当我使用“ onShow”事件时-在打开对话框之前将其发出。

当我添加“ autofocus”指令并尝试在AfterViewInit中设置焦点时,它仅被调用一次。

任何人都知道如何为对话框设置焦点或获取“ onAfterShow”事件吗?

1 个答案:

答案 0 :(得分:0)

我使用setTimeout根据表单外观在特定时间后设置元素的焦点,例如500毫秒

模板

<p-dialog [header]="dialogTitle" [(visible)]="isDialogVisible" [responsive]="true" 
   [appendTo]="'body'" (onShow)="setFocus(txtElement)">
     <input #txtElement >
</p-dialog>

组件

setFocus(elm: HTMLInputElement) {
    setTimeout(() => {
      elm.focus()
    }, 500);
  }