我想从控制器“模糊”(或不聚焦等)输入元素。
我参考了输入@ViewChild('searchInput') searchInput: ElementRef
这有效:
this.searchInput.nativeElement.focus()
但这似乎不是:
this.searchInput.nativeElement.blur()
答案 0 :(得分:1)
可以尝试在组件中使用Renderer,注入渲染器,并在想要模糊时调用下面的代码
this.renderer.invokeElementMethod(this.searchInput.nativeElement, 'blur', []);
答案 1 :(得分:0)
在Angular 5+中,不推荐使用Renderer,并且Renderer2没有invokeElementMethod
,但是您的示例应该可以使用。在没有看到更多代码的情况下,我唯一想到的就是您没有将模板引用添加到标记中的输入中:
模板
<input #myInput id="example" name="example" formControlName="example ...>
控制器
@ViewChild('myInput') public myInput: ElementRef<HTMLElement>;
// ...
public onSubmit() {
this.myInput.nativeElement.blur();
}