我刚接触Angular ,正在try 使用它将焦点设置在id为"input1"的输入上.我使用以下代码:

@ViewChild('input1') inputEl: ElementRef;

然后在组件的后面:

 this.inputEl.nativeElement.focus();

但它不起作用.我做错了什么?任何帮助都将不胜感激.

推荐答案

@Z.Bagley提到的问题中的一个答案给了我答案.我必须将Renderer2从@angular/core导入到我的组件中.然后:

const element = this.renderer.selectRootElement('#input1');
setTimeout(() => element.focus(), 0);

"谢谢您,"布莱斯先生提出了这个解决方案!

Angular相关问答推荐

Angular 信号不更新afterNextender()

有没有一种方法用timeout()操作符创建计数器,用于超时一个观察对象?

导致无限请求的Angular HttpInterceptor和HttpClientModule

Angular:将服务注入非独立组件导致应用程序中断

Angular 17多内容投影错误

如果Rxjs间隔请求仍在进行,则不应重置,但如果用户更改输入,则应重置

所有返回缺少权限或权限不足的FireBase项目.

一个接一个的Angular http请求,但只关心第一个

ngRouterOutlet和组件生命周期使用自定义模板渲染的问题

Angular Http 拦截器 - 修改标头会导致 CORS

如何更改 Angular material 按钮中的内部 RippleColor 和 UnboundedRipple 效果?

Angular模板错误:Property does not exist on type component

为什么 Angular2 (click) 事件没有在

Subject.complete() 是否取消订阅所有听众?

如何在数据表angular material中显示空消息,如果未找到数据

Angular 5 国际化

Angular 2:无法绑定到 x,因为它不是已知的本机属性

Angular Material 模态对话框周围的空白

在 webpack 构建中包含 git commit hash 和 date

Angular2:无法读取未定义的属性名称