AngularJS и тип ввода = дата, как отформатировать данные модели?

У меня есть следующие формы ввода, которые я пытаюсь заполнить данными области:

<input type="date" name="editCallForm.date"  ng-model="editCallForm.date">

Я попробовал несколько комбинаций форматирования даты, например:

moment($rootScope.formData.date).format('DD/mm/YYYY');

Но без везения (для ввода времени работает без проблем).

Каков правильный формат для этого типа ввода?

Спасибо за любую помощь.

1 ответ

Даты должны быть ссылки на объекты JavaScript, это говорит

The model must always be a Date object, 

так

ваши коды должны быть

<input type="date" name="editCallForm.date"  ng-model="editCallForm.date">

а также

$scope.editCallForm.date = new Date(); // set to today

если вы хотите отформатировать эту дату, вы можете следовать ответу Бена, например:

$scope.formattedDate = $filter('date')($scope.dateObj, "dd/MM/yyyy");

не забудьте добавить $filter зависимость в вашем контроллере

вот демо Plunker, пожалуйста, проверьте

обратите внимание, что эта функция не работает в старых угловых версиях. его рабочий угол 1,3 и далее

пожалуйста, проверьте последние изменения в журнале изменений angularjs здесь


Если вам нужно сделать это в более старых версиях angularjs, вы можете использовать что-то вроде angular-ui bootstrap datepicker

вот демо плункер

Другие вопросы по тегам