Похоже, что указатель даты ngx-bootstrap использует dateInputFormat при установке даты iso - PullRequest
0 голосов
/ 07 ноября 2018

В нашем приложении мы глобально установили формат ввода:

export function getDatepickerConfig(): BsDatepickerConfig {
    return Object.assign(new BsDatepickerConfig(), {
        dateInputFormat: 'DD-MM-YYYY'
    });
}

Что мы добавляем в наш корневой модуль:

{ provide: BsDatepickerConfig, useFactory: getDatepickerConfig },

Мы используем этот контроль в реактивном виде:

                <input bsDatepicker
                       class="form-control"
                       id="expiryDate"
                       formControlName="expiryDate"
                       type="text">

Это работает, но не так, как ожидалось. Я ожидал, что этот формат будет использоваться, когда пользователь вводит дату вручную. Я не ожидал, что этот формат также будет использоваться, когда начальное значение устанавливается через конфигурацию FormControl.

Когда мы устанавливаем это значение в качестве значения по умолчанию в FormControl: «2015-12-31T00: 00: 00 + 01: 00» Контроль показывает: 20-12-2031

Таким образом, кажется, что входящие даты ISO анализируются с использованием этого формата ввода. Это предполагаемое поведение?

bsDatepicker является ControlValueAccessor, я ожидаю, что элемент управления будет использовать этот dateInputFormat в функции registerOnChange, но не в своей функции writeValue

edit: я только что проверил, что реализация ControlValueAccessor входной директивы datepicker действительно использовала dateInputFormat в в обоих случаях. Я решил эту проблему, убедившись, что начальное значение является объектом Date, а не строкой ISO.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...