Ich möchte eine Direktive verwenden, um alle Eingabedaten in Großbuchstaben umzuwandeln. Um das zu erreichen, schaffe ich diese kundenspezifische Richtlinie:Direktive für Großbuchstaben Eingabefelder
@Directive({
selector: '[appToUpperCase]'
})
export class ToUpperCaseDirective {
constructor() {}
@HostListener('input', ['$event']) onKeyUp(event) {
event.target['value'] = event.target['value'].toUpperCase();
}
}
Und ich benutze es wie folgt aus:
<form [formGroup]="formGroup" appToUpperCase>
Es exept, dass fast gut funktioniert, wenn ich Text in meinem Feld eingeben, verwandeln das obere Gehäuse ist permutiert, aber der Fokus liegt am Ende des Feldes ... Wenn ich also eine vorgefüllte Eingabe bearbeite, wenn ich den Beginn der Daten ändern möchte, muss ich den Fokus nach jedem Keyup-Ereignis an der richtigen Stelle setzen. ..
Wie kann ich das beheben?
Das Problem ist, dass CSS die Daten in Großbuchstaben anzeigen, aber den Wert nicht transformieren. Ich habe viele Seiten mit vielen Formen, daher möchte ich die eingehenden Daten auf einfache Weise in Großbuchstaben für die Anzeige und im Modell umwandeln. Es ist der Grund, warum ich eine Richtlinie –
@JulienAZEMA Ich würde mit diesem gehen, Sie erhalten das visuelle Erscheinungsbild und scheint, Sie haben ein Formular, so was Sie tun könnten ist, dass nach dem Senden können Sie die Formularobjekteigenschaften iterieren und transformieren sie in Großbuchstaben :) – Alex