Tenho um campo de data e desejo remover o marcador de posição por padrão.
Estou usando javascript onfocus
e onfocusout
eventos para remover o espaço reservado.
Alguém pode ajudar com o uso da diretiva angular2?
<input name="date" type="text" onfocus="(this.type='date')" onfocusout="(this.type='text')" class="dateinput">
Tento resolver desta forma, mas estou tendo problemas com a redefinição do 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()
neste caso, será chamado no âmbito global. Essa é outra razão pela qual usar o Angular neste caso é valioso.focus
ng6focus
funcionará em entradas e áreas de texto suportadas, mas se você tiver componentes personalizados que não suportam, você pode usar em seufocusin
lugar :)Se você deseja capturar o evento de foco dinamicamente em cada entrada em seu componente:
Confira o código completo aqui: https://stackblitz.com/edit/angular-93jdir
fonte
Eu criei uma pequena diretiva que se liga ao atributo tabindex. Ele adiciona / remove a classe tem-foco dinamicamente.
fonte
A solução é esta:
fonte
trabalha para mim de Pardeep Jain
fonte