在我的离子2应用中,我的页面上有一个按钮。按下按钮时,它会在上面带有一个带有输入框的模态屏幕。当模式页面打开时,我想将光标聚焦在模式页面上的输入框上,以便用户可以立即开始键入。
在我的模式页面中,我有以下HTML
<ion-item>
<ion-input #search type="text" placeholder="Type an area e.g. Bedroom" [value]="searchValue" [formControl]="inputSearchControl"></ion-input>
</ion-item>
在我的代码中,我有以下内容:
@ViewChild("search") inputBox;
ngAfterViewInit() {
this.inputBox.nativeElement.focus();
this.inputSearchControl.valueChanges.debounceTime(500).subscribe((callbackText) => {
this.selectedArray = this.originalArrayBeforeAnyFiltering.filter((item) => {
return (item.toLowerCase().indexOf(callbackText.toLowerCase()) > -1);
});
});
}
因此,在 view 初始化之后,将光标聚焦在模式上的输入框上。但是,当我的代码在 view 初始化上运行时,由于函数未存在:
,它会失败。
VM415:1 Uncaught TypeError: this.inputBox.focus is not a function(…)
在控制台上说 focus 是 eventemitter ,但我不确定如何使用它来实现我想要的东西。
任何帮助将不胜感激。
bengrah
您需要使用setFocus()
函数。
this.inputBox.setFocus()
来源此讨论
也根据文档,focus
是ion-input
的输出事件。