Próbuję mieć wartości formatu/maski pola wejściowego podczas ich wpisywania, a rzeczywisty model zachowuje surowe (lub inaczej sformatowane)) wartość. Myślę numery telefonów itp., Ale dla uproszczenia używam wielkich liter do testowania.Kątowa 2 - Maska wejściowa: Pole wejściowe wyświetla sformatowaną wartość, a model zachowuje niesformatowaną wartość
Próbowałem wielu rzeczy, mając nadzieję, że jest to tak proste, jak dyrektywa. Ale nie można uzyskać wartości wyświetlania odejść od wartości formularza.
upadać: http://plnkr.co/edit/VH5zn4S8q28CBpFutBlx?p=preview
Oto dyrektywy:
@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);
}
}
i forma:
<form [ngFormModel]='myForm'>
<input [ngFormControl]='myForm.controls.field' uppercase>
<div>
{{ myForm.value.field }}
</div>
</form>
dlaczego nie Pipes? Wygląda na to, że potrzebujesz innego sposobu wyświetlania tekstu. –
Chcę, aby formatowanie stało się w polu wprowadzania danych - maska wejściowa. Wyświetlam tylko wartość w widoku do celów testowych. – Steve