Ich versuche, ein Eingabefeld Format/Maske Werte wie sie eingegeben werden, während das tatsächliche Modell behalten die Raw (oder anders formatiert) Wert. Ich denke Telefonnummern usw., aber aus Gründen der Einfachheit verwende Großbuchstaben zum Testen.Angular 2 - Eingabemaske: Eingabefeld Anzeige formatiert Wert, während Modell unformatierten Wert
Ich habe eine Menge Zeug ausprobiert, in der Hoffnung, es ist so einfach wie eine Richtlinie. Es scheint aber nicht so zu sein, dass der Anzeigewert vom Formwert abweicht.
zupfen: http://plnkr.co/edit/VH5zn4S8q28CBpFutBlx?p=preview
Hier ist die Richtlinie:
@Directive({
selector: '[uppercase]',
host: {
'(input)': 'onInputChange()',
}
})
export class UppercaseDirective {
constructor(private model: NgFormControl) { }
onInputChange() {
let newValue = this.model.value.toUpperCase();
this.model.viewToModelUpdate(newValue);
this.model.valueAccessor.writeValue(newValue);
}
}
und die Form:
<form [ngFormModel]='myForm'>
<input [ngFormControl]='myForm.controls.field' uppercase>
<div>
{{ myForm.value.field }}
</div>
</form>
warum nicht Pipes? Klingt so, als ob Sie nur eine andere Art der Anzeige des Textes wünschen. –
Ich möchte die Formatierung in der Eingabebox passieren - eine Eingabemaske. Ich zeige den Wert nur zu Testzwecken in der Ansicht an. – Steve