Angular 启动多选自动对焦

Angular 启动多选自动对焦,angular,primeng,autofocus,primeng-dropdowns,Angular,Primeng,Autofocus,Primeng Dropdowns,在Angular v7项目中使用PrimgNG v7.1.3 在一个简单的组件中实现了Multiselect()。 加载页面时,需要将焦点设置在该页面上 下面的解决方案适用于下拉列表,但不适用于多选: 在HTML中: 在组件中: import { Dropdown } from 'primeng/dropdown'; @ViewChild('someDropdown') someDropdown: Dropdown; this.someDropdown.applyFocus(); 但对于M


在Angular v7项目中使用PrimgNG v7.1.3

在一个简单的组件中实现了Multiselect()。
加载页面时,需要将焦点设置在该页面上

下面的解决方案适用于下拉列表,但不适用于多选:

在HTML中:

在组件中:

import { Dropdown } from 'primeng/dropdown';
@ViewChild('someDropdown') someDropdown: Dropdown;

this.someDropdown.applyFocus();
但对于Multiselect,这样的方法无效会引发错误

尝试了此SO链接中提到的“ngIf内控制”的第一个答案,但仍然没有成功:
也查看了打底文档和用户指南,但没有提到聚焦功能

后来也试了一下。这些都不管用

this.someMultiSelect.focus();
this.someMultiSelect.applyFocus();

this.someMultiSelect.el.focus();
this.someMultiSelect.el.applyFocus();

this.someMultiSelect.el.nativeElement.focus();
this.someMultiSelect.el.nativeElement.applyFocus();

this.someMultiSelect.containerViewChild.focus();
this.someMultiSelect.containerViewChild.applyFocus();

this.someMultiSelect.containerViewChild.nativeElement.focus();
this.someMultiSelect.containerViewChild.nativeElement.applyFocus();
闪电战:

请建议


非常感谢您的帮助。

您可以通过
ViewChild
获取元素,并使用此技巧使其高亮显示

大概是这样的:

组件

import { MultiSelect } from 'primeng/multiselect';

export class AppComponent implements AfterViewInit {
  name = 'Angular';

  @ViewChild('someDropdown') someDropdown: MultiSelect; // <--- you need to import this from PrimeNG Library

 ngAfterViewInit() {
   setTimeout(() => {
     this.someDropdown.containerViewChild.nativeElement.click();  
     this.someDropdown.hide();
   }, 300);

  }

从'priming/MultiSelect'导入{MultiSelect};
导出类AppComponent实现AfterViewInit{
名称='角度';
@ViewChild('someDropdown')someDropdown:MultiSelect;//{
this.someDropdown.containerViewChild.nativeElement.click();
this.someDropdown.hide();
}, 300);
}
以下是Stackblitz示例:


我需要设置焦点,而不是打开multi-select。用户可能想打开multiselect,也可能不想打开multiselect,但焦点应设置在页面加载本身上。@kunaldesh您能再检查一遍该示例吗?这就是你想要的吗?我已经在描述中添加了Stackblitz链接。为了简化测试部分,添加了一个按钮,单击该按钮应设置元素的焦点。@kunaldeshe是的,我看到了你创建的示例,但请你澄清一下,你说的“设置元素的焦点”是什么意思?您的意思是想突出显示multiselect字段吗?