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字段吗?