Почему в поле ввода type = "date" выбранная новая дата не отображается, так как формат дд / мм / гггг? - PullRequest
0 голосов
/ 16 ноября 2018

У меня есть таблица, которая при нажатии кнопки редактирования в любой строке открывает форму, заполненную информацией из строки, по которой щелкнули.Вся информация отображается правильно, за исключением даты.

Дата из таблицы имеет формат «ДД / ММ / ГГГГ», который не поддерживается нативным средством выбора даты HTML, поэтому в ngOnInit первое, что я делаю, этообновить значение элемента управления с помощью «ГГГГ-ММ-ДД».Это исправило проблему с визуализацией даты после показа формы.Теперь проблема в том, что когда я выбираю новую дату из средства выбора даты, новая дата не отображается на входе: вход просто возвращается к дд / мм / гггг, но, конечно, дата правильно сохраняется в элементе управления формы, поэтомучто мне не хватает?Что можно сделать, чтобы дата всегда отображалась при вводе даты в формате ДД / ММ / ГГГГ?

Datepicker html

<form [formGroup]="group">

<label>{{config.label}}</label>
<input
    type="date"
    [formControlName]="config.name"
    [placeholder]="config.placeholder"
    (change)="setNewDate()"
>

Datepicker ts

export class FormDatepickerComponent implements OnInit  {
config;
group: FormGroup;
currentDateVal;

ngOnInit() {
    this.currentDateVal = this.group.get(this.config.name).value ;
    let p = this.currentDateVal.toString().split('/')
    let d = p[0];
    let m = p[1];
    let y = p[2];
    this.group.get(this.config.name).patchValue( y + '-' + m + '-' + d)

}

setNewDate() {
    this.currentDateVal = moment(this.group.get(this.config.name).value).format('YYYY-MM-DD') ;

    let newDate = moment( this.currentDateVal).format( 'DD/MM/YYYY');
    this.group.get(this.config.name).patchValue(newDate);
}

}

РЕДАКТИРОВАТЬ: это не дублирование Есть ли способ изменить формат ввода = формат даты? потому что начальная отображаемая дата верна, когда я конвертирую данные в ngOnInit.Проблема в том, что при выборе новой даты она вообще не отображается в поле ввода, а правильно сохраняется в контрольном значении формы.

...