Mam pole daty i domyślnie chcę usunąć symbol zastępczy.
Używam JavaScript onfocus
i onfocusout
zdarzeń do usuwania symbolu zastępczego.
Czy ktoś może pomóc w używaniu dyrektywy angular2?
<input name="date" type="text" onfocus="(this.type='date')" onfocusout="(this.type='text')" class="dateinput">
Próbuję rozwiązać w ten sposób, ale pojawia się problem z resetowaniem typu pola wejściowego.
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()
w tym przypadku zostanie wywołana w zakresie globalnym. To kolejny powód, dla którego użycie Angulara w tym przypadku jest cenne.focus
ng6focus
będzie działać na obsługiwanych wejściach ifocusin
Jeśli chcesz rejestrować zdarzenie fokusu dynamicznie na każdym wejściu komponentu:
Sprawdź pełny kod tutaj: https://stackblitz.com/edit/angular-93jdir
źródło
Stworzyłem małą dyrektywę, która wiąże się z atrybutem tabindex. Dynamicznie dodaje / usuwa klasę ma fokus.
źródło
Rozwiązanie jest następujące:
źródło
pracuje dla mnie z Pardeep Jain
źródło