Mam dynamicznie generowane Angular 2 FormGroup z wieloma polami wejściowymi FormControl. Niektóre z wejść to Daty, które są pobierane z serwera jako znaczniki czasu unix.Angular 2 data pipe wewnątrz Input FormControl
Co chciałbym zrobić, to:
- , aby móc przetłumaczyć uniksowego znacznika czasu do postaci czytelnej dla człowieka, kiedy mój FormGroup jest wypełniona, a także
- tłumaczyć ludzką reprezentację data do znacznika czasu unixa po przesłaniu formularza .
Część 1 jest dość proste, używając dat rury kątowej jest tak:
<input class="form-control" [formControlName]="question.key"
[value]="this.form.controls[this.question.key].value | date:'dd/MM/yyyy'">
Gdzie this.form jest odniesienie do FormGroup i this.question jest niestandardowej klasy otoki na podstawie oficjalnego tutoriala o dynamiczne formularze:
https://angular.io/docs/ts/latest/cookbook/dynamic-form.html
Próbując zmienić datę wejścia w ten sposób nie zadziała, ponieważ rura będzie stale starają się przekształcić wartość wejściową, a tym samym sprawiają, że dane wejściowe nie nadają się do użycia, jeśli nie wyrzucą niepoprawnego argumentu dla wyjątku "DatePipe" dla potoku.
Aby wyjaśnić, wypełnij mój formularz za pomocą api FormGroup.patchValue()
i prześlij dane formularza za pomocą api FormGroup.getRawValue()
.
Próbowałem użyć elementu wyboru selektora daty Angular 2, ale moje duże formularze były dość powolne, więc chciałbym zrobić to bez niestandardowych zbieraczy dat lub dowolnych widgetów zależnych od jQuery.
Z góry dziękuję.
Dzięki, spróbuję tego podejścia i wrócę do Ciebie tak szybko, jak to możliwe. – ktsangop
Ups, właśnie zdałem sobie sprawę, że zapomniałem ważną rolę w deklaracji "@ Component". Będę edytować jak najszybciej. – n00dl3
changeCallback i touchCallback muszą zostać zainicjalizowane i przypuszczam, że tak jak "touchCallback: any =() => {};' Poza tym i po wielu lekturze, myślę, że rozumiem jak to działa teraz! Przyjmę wkrótce twoją odpowiedź, jeśli nie mam innych pytań. Dzięki! – ktsangop