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
вот демо плункер