我想自动对焦p对话框组件中的某个输入字段, 通过绑定到对话框的visible属性的标志来打开/关闭该标志。
当我在输入标签中添加“自动对焦”属性时-仅在第一次打开对话框时才对其进行对焦。
当我使用“ onShow”事件时-在打开对话框之前将其发出。
当我添加“ autofocus”指令并尝试在AfterViewInit中设置焦点时,它仅被调用一次。
任何人都知道如何为对话框设置焦点或获取“ onAfterShow”事件吗?
答案 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);
}