@Wan-Derer
Зобанели на Хабре, волки́ ;((

Angular, Bootstrap, datePicker, как подставить текущую дату?

Всем привет!
У меня есть шаблон:
<input class="form-control" type="date" name="date-from" [(ngModel)]="criteria.to">

и объект:
criteria: CriteriaSet = {
    .........................
    to: new Date(),
    ........................
  };

Тип поля to: Date. Ожидаю что datePicker подставится текущая дата, но она не подставляется
При этом, если форму написать так:
<input class="form-control" type="date" name="date-to" [valueAsDate]="criteria.to">

то дата поставляется, т.е. объект инициализируется правильно. Но, понятное дело, дальнейший выбор даты не работает.

Вопрос: как сделать чтобы в datePicker подставлялась текущая дата?

UPD: заметил что при инициализации дата представляется так:
Fri Dec 30 2022 12:28:15 GMT+0300 (Москва, стандартное время)

а после выбора пикером просто как
2022-12-30
хотя тип данных один и тот же - Date. Почему так?
  • Вопрос задан
  • 175 просмотров
Пригласить эксперта
Ответы на вопрос 1
@Wan-Derer Автор вопроса
Зобанели на Хабре, волки́ ;((
Кому интересно: провёл небольшое исследование и был зело фраппирован!
Сделал кнопочку, которая делает
console.log('----------> ', typeof this.criteria.to, this.criteria.to);

Так вот: если её нажать до выбора даты пикером (т.е. когда поле только инициализировано), типом поля является object, а если сначала выбрать, а потом нажать - уже string! И ладно что пикеры выдают string (хотя как ладно, мне ещё предстоит валидация полей: чую будет гимор), так ещё и TypeScript меняет тип переменной, хотя в интерфейсе чётко задано: Date. Как так-то?!
Что касается подстановки текущей даты, то меняем тип поля на string и инициализируем, например, так:
...........
to: new Date().toISOString().split('T')[0],
...........

и, вроде, всё работает (со строкой, понятно).
Кто знает способы получше - напишите, пожалуйста.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы