У меня есть динамически генерируемая Angular 2 FormGroup с несколькими полями ввода FormControl. Некоторыми входами являются Даты, которые извлекаются с сервера как временные метки unix.Угловая 2-метровая трубка внутри входа FormControl
Что я хотел бы сделать, это:
- , чтобы иметь возможность перевести метку времени UNIX в читаемом виде, , когда мой FormGroup заселена, а также
- перевести человеческое представление дата на временную метку unix, когда форма отправлена .
Часть 1 несколько просто, используя дату трубу ANGULAR как это:
<input class="form-control" [formControlName]="question.key"
[value]="this.form.controls[this.question.key].value | date:'dd/MM/yyyy'">
Где this.form является ссылкой на FormGroup и this.question является пользовательским классом обертки на основе официального учебника о динамических формах:
https://angular.io/docs/ts/latest/cookbook/dynamic-form.html
Попытка изменить ввод даты, способ не будет работать, потому что труба будет постоянно пытаться преобразовать входное значение, таким образом, делая ввод непригодным, если не выбрасывает аргумент Invalid для исключения 'DatePipe'.
Чтобы уточнить, я заполняю свою форму, используя FormGroup.patchValue()
api, и отправлю данные формы, используя FormGroup.getRawValue()
api.
Я попытался использовать компонент для определения даты в формате Angular 2, но они сделали мои огромные формы довольно медленными, поэтому я хотел бы сделать это без специальных сортировщиков дат или любых зависимых от jQuery виджетов.
Заранее спасибо.
Спасибо, я попробую этот подход и вернусь к вам как можно скорее. – ktsangop
К сожалению, я просто понял, что забыл важную роль в декларации '@ Component'. Я отредактирую как можно скорее. – n00dl3
changeCallback и touchCallback необходимо инициализировать, я полагаю, что это 'touchCallback: any =() => {};' Кроме этого, и после большого чтения я думаю, что понимаю, как это работает сейчас! Примите ваш ответ в ближайшее время, если у меня нет других вопросов. Спасибо! – ktsangop