J'ai un champ de date et je souhaite supprimer l'espace réservé par défaut.
J'utilise javascript onfocus
et des onfocusout
événements pour supprimer l'espace réservé.
Quelqu'un peut-il aider à utiliser la directive angular2?
<input name="date" type="text" onfocus="(this.type='date')" onfocusout="(this.type='text')" class="dateinput">
J'essaie de résoudre de cette manière, mais je rencontre un problème avec la réinitialisation du type de champ de saisie.
import { Directive, ElementRef, Input } from 'angular2/core';
@Directive({
selector: '.dateinput',
host: {
'(focus)': 'setInputFocus()',
'(focusout)': 'setInputFocusOut()',
}})
export class MyDirective {
constructor(el: ElementRef) { this.el = el.nativeElement; console.log(this.el);}
setInputFocus(): void {
//console.log(this.elementRef.nativeElement.value);
}
}
dateinput
?onfocusout="someMethod()"
someMethod()
dans ce cas, sera appelé dans la portée globale. C'est une autre raison pour laquelle l'utilisation d'Angular dans ce cas est précieuse.focus
ng6 enfocus
fonctionnera sur les entrées et les zones de texte prises en charge, mais si vous avez des composants personnalisés qui ne le prennent pas en charge, vous pouvez les utiliser à lafocusin
place :)Si vous souhaitez capturer l'événement de focus de manière dynamique sur chaque entrée de votre composant:
Consultez le code complet ici: https://stackblitz.com/edit/angular-93jdir
la source
J'ai créé une petite directive qui se lie avec l'attribut tabindex. Il ajoute / supprime dynamiquement la classe has-focus.
la source
La solution est la suivante:
la source
travaille pour moi de Pardeep Jain
la source