Tengo un campo de fecha y quiero eliminar el marcador de posición de forma predeterminada.
Estoy usando javascript onfocus
y onfocusout
eventos para eliminar el marcador de posición.
¿Alguien puede ayudar con el uso de la directiva angular2?
<input name="date" type="text" onfocus="(this.type='date')" onfocusout="(this.type='text')" class="dateinput">
Intento resolverlo de esta manera, pero tengo problemas para restablecer el tipo de campo de entrada.
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()
en este caso, se llamará en el ámbito global. Esa es otra razón por la que usar Angular en este caso es valioso.focus
ng6focus
funcionará en entradas y áreas de texto admitidas, pero si tiene componentes personalizados que no lo admiten, puede usarlosfocusin
en su lugar :)Si desea capturar el evento de enfoque de forma dinámica en cada entrada de su componente:
Consulte el código completo aquí: https://stackblitz.com/edit/angular-93jdir
fuente
He creado una pequeña directiva que se vincula con el atributo tabindex. Agrega / elimina la clase has-focus dinámicamente.
fuente
La solucion es esta:
fuente
funciona para mí de Pardeep Jain
fuente