web-dev-qa-db-fra.com

Ionic v4 - comment faire la mise au point automatique sur une entrée?

J'ai une vue avec une entrée <ion-input #codigobarras></ion-input>

Comment puis-je me concentrer automatiquement sur cette entrée?

Qu'ai-je essayé

@ViewChild('codigobarras') input_codigobarras: Input;

...

ionViewDidEnter() {
    this.input_codigobarras.focus(); // didn't work = temp2.focus is not a function
    this.input_codigobarras.focus.emit(); // didn't work = do nothing, just returns undefined
    this.input_codigobarras.getElementRef().nativeElement.focus() // didn't work = do nothing, just returns undefined
    this.input_codigobarras.setFocus(); // didn't work = do nothing, just returns undefined
}
<ion-input [autofocus]></ion-input> <!-- Didn't wrok -->
4
SpaceDogCS

Une solution plus générique pour le faire quand et où vous le souhaitez pourrait être:

<ion-input ... #inputId></ion-input>

Ainsi, avec un ViewChild dans votre contrôleur, vous pouvez facilement mettre l'accent sur:

@ViewChild('inputId', {static: false}) ionInput: { setFocus: () => void; };
...
setFocusOnInput() {
   this.ionInput.setFocus();
}
0
Juan Antonio