Ce qui suit fonctionne très bien lorsque la touche enter est relâchée. Quelles autres options sont disponibles pour la keyup
en plus du keyup.enter
?
<input #inputstring (keyup.enter)="doSomething(inputstring.value)"/>
Ce sont les options actuellement documentées dans les tests: ctrl, shift, entrée et échappement. Voici quelques exemples valides de liaisons de clés:
keydown.control.shift.enter
keydown.control.esc
Vous pouvez suivre ceci ici tant qu’aucune documentation officielle n’existe, mais ils devraient sortir bientôt.
Ce fichier vous donne quelques astuces supplémentaires. Par exemple, keydown.up ne fonctionne pas, vous avez besoin de keydown.arrowup:
Je recherchais un moyen de faire la liaison à plusieurs événements clés - en particulier Maj + Entrée - mais je ne trouvais aucune bonne ressource en ligne. Mais après avoir enregistré la liaison keydown
<textarea (keydown)=onKeydownEvent($event)></textarea>
J'ai découvert que l'événement clavier fournissait toutes les informations nécessaires pour détecter Maj + Entrée. Il s'avère que $event
renvoie un KeyboardEvent relativement détaillé.
onKeydownEvent(event: KeyboardEvent): void {
if (event.keyCode === 13 && event.shiftKey) {
// On 'Shift+Enter' do this...
}
}
Il y a aussi des drapeaux pour CtrlKey, AltKey et MetaKey (c'est-à-dire la touche de commande sur Mac).
Pas besoin de KeyEventsPlugin, JQuery ou d'une liaison JS pure.
vous pouvez ajouter un événement keyup comme celui-ci
template: `
<input (keyup)="onKey($event)">
<p>{{values}}</p>
`
dans Component, codez certains comme ci-dessous
export class KeyUpComponent_v1 {
values = '';
onKey(event:any) { // without type info
this.values += event.target.value + ' | ';
}
}
Si votre événement keyup est en dehors de la CTRL, SHIFT, ENTER et ESC crochet, utilisez le guide de @Md Ayub ALi Sarker. Le seul pseudo-événement keyup mentionné ici dans les documents angulaires https://angular.io/docs/ts/latest/guide/user-input.html est ENTER clé. Il n'y a pas encore de pseudo-événements keyup pour les touches numériques et les alphabets.
Pour Angular _ 7 keyup peut être utilisé. https://angular.io/guide/user-input
Ont frappé le même problème aujourd'hui.
Celles-ci sont mal documentées, un problème en suspens existe.
Certains pour keyup, comme l'espace:
<input (keyup.space)="doSomething()">
<input (keyup.spacebar)="doSomething()">
Certains pour keydown
(peut aussi fonctionner pour keyup):
<input (keydown.enter)="...">
<input (keydown.a)="...">
<input (keydown.esc)="...">
<input (keydown.alt)="...">
<input (keydown.shift.esc)="...">
<input (keydown.shift.arrowdown)="...">
<input (keydown.f4)="...">
Tous ci-dessus sont des liens ci-dessous:
https://github.com/angular/angular/issues/18870
https://github.com/angular/angular/issues/8273
https://github.com/angular/angular/blob/master/packages/platform-browser/src/dom/events/key_events.ts
https://alligator.io/angular/binding-keyup-keydown-events/