Ionic framework 在Ionic中设置页面加载焦点
我似乎无法在页面加载上设置焦点。以下是我现在正在尝试做的: 输入:Ionic framework 在Ionic中设置页面加载焦点,ionic-framework,Ionic Framework,我似乎无法在页面加载上设置焦点。以下是我现在正在尝试做的: 输入: <ion-input placeholder="SCAN LP TO ACKNOWLEDGE" type="number" [(ngModel)]="this.session.listService.licensePlate" required (keyup.enter)="ValidateAndAcknowledge()" #myInput ></ion-input> 因此,当模板声明#myInput
<ion-input placeholder="SCAN LP TO ACKNOWLEDGE" type="number" [(ngModel)]="this.session.listService.licensePlate" required (keyup.enter)="ValidateAndAcknowledge()" #myInput ></ion-input>
因此,当模板声明#myInput时,ViewChild引用“输入”。您需要解决以下问题:
export class AcknowledgePage {
@ViewChild('myInput') myInput;
constructor() {
}
ionViewDidLoad() {
setTimeout(() => {
console.log(this.myInput);
this.myInput.setFocus();
}, 150);
}
}
现在,即使这段代码可以在Android设备上使用——这在最新的iOS(11.3+)上可能不起作用,因为苹果实际上希望用户通过明确的点击动作触发焦点,而不是通过编程 有更好的方法吗?这将是一款爱奥尼亚Cordova安卓应用程序,不太可能,我最近检查了一下,没有;我找不到更好更优雅的解决方案。但是你能更好地描述你的用例吗?您希望在页面加载中确保有焦点,从而使虚拟键盘立即或立即出现?你想解决什么?没错。页面上有一个输入字段,他们将使用条形码扫描仪扫描条形码。这将在扫描后触发并自动进入。但我希望在页面加载时将焦点设置在那里,这样就不会与页面本身发生交互。明白了吗?当前的代码-它有什么“不好”的地方?这是可行的,但还是有问题?你能详细说明一下你想做什么不同的工作吗?此外,您的代码当前指向ionViewDidLoad生命周期,该生命周期仅在组件(页面)的代码加载到内存时触发一次。您可能需要在此处使用IonViewDiCenter挂钩。
export class AcknowledgePage {
@ViewChild('myInput') myInput;
constructor() {
}
ionViewDidLoad() {
setTimeout(() => {
console.log(this.myInput);
this.myInput.setFocus();
}, 150);
}
}