I have a dynamically generated Angular 2 FormGroup with multiple FormControl input fields. Some of the inputs are Dates, which are fetched from the server as unix timestamps.
What i would like to do is :
- to be able to translate the unix timestamp to a human readable form,
when my FormGroup is populated, and also
- translate the human
representation of the date to a unix timestamp when the form is
submitted.
Part 1 is somewhat simple, using Angular's date pipe like this :
<input class="form-control" [formControlName]="question.key"
[value]="this.form.controls[this.question.key].value | date:'dd/MM/yyyy'">
Where this.form is a reference to the FormGroup and this.question is a custom wrapper class based on the official tutorial about dynamic forms :
https://angular.io/docs/ts/latest/cookbook/dynamic-form.html
Trying to change the date input that way won't work because the pipe will constantly try to transform the input value, thus making the input unusable if not throwing an Invalid argument for pipe 'DatePipe' exception.
To clarify, i fill my form using the FormGroup.patchValue()
api, and submit the form data using the FormGroup.getRawValue()
api.
I have tried to use an Angular 2 date picker component, but they made my huge forms pretty slow, so i would like to do it without custom date pickers or any jQuery dependent widgets.
Thanks in advance.
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…