Как установить действительную пустую дату в Moment js?

Итак, я использую DatePicker материала Angular, который помогает мне выбрать только месяц и год. https://material.angular.io/components/datepicker/overview#watching-the-views-for-changes-on-selected-years-and-months

Однако функциональность работает не совсем так, как ожидалось, если вы не сделаете что-то вроде this- date = new FormControl (moment ()); (Вы также можете выбрать день, кроме месяца и года.)

Теперь moment (), как мы знаем, просто возвращает текущую дату и время. Моя основная цель - отобразить данные о существующих пользователях в форме для приложения. Однако пользователь может редактировать форму после ее загрузки. Одно из этих полей - выбор даты материала. Это не обязательное поле, поэтому я не всегда получаю действительный ответ от серверной части. Когда ответ - это дата, нет абсолютно никаких проблем. Но всякий раз, когда я получаю нулевое значение, возникает основная проблема.

Я просмотрел документы Moment.js (https://momentjs.com/docs/), и это четко указывает, что момент (ноль) и момент ("") являются недопустимыми датами. И, следовательно, как только я использую один из двух для инициализации datepicker, datepicker вообще не позволяет мне выбирать дату в редактируемом режиме.

Как я могу установить действительную пустую дату с помощью moment (), которая не будет мешать работе datepicker?


person Snigdho Bhattacharya    schedule 17.04.2019    source источник
comment
Можете ли вы показать код шаблона и компонента?   -  person umutesen    schedule 18.04.2019
comment
я также хотел бы знать ответ на это   -  person user2847749    schedule 11.06.2019


Ответы (2)


У нас была такая же проблема в нашем проекте, и мы исправили ее, добавив тернарное условие для значения средства выбора даты. const dateValue = value ? moment(value) : null; если значение существует, мы создаем из него моментный объект, в противном случае он должен быть нулевым.

person MKrup    schedule 08.06.2020

Если вы используете адаптер moment и даты моментов, вы должны установить для переменной даты вашего компонента значение null, а не moment(null). На внутреннем уровне средство выбора даты будет спрашивать адаптер, действительна ли дата, но moment(null).isValid() возвращает false, тем самым вызывая валидатор синтаксического анализа, который вернет ошибку.

person Fabian Vilers    schedule 06.09.2019