Как изменить формат значения модели Angular UI Datepicker в угловую форму?

Вот формат по умолчанию UI Datepicker угловой формы

  {
    "date": "2015-10-05T18:30:00.000Z"
  }

Как изменить вышеуказанный формат на

  {
    "date": "2015/10/05"
  }

Вот JSBIN: http://jsbin.com/cadaga/2/edit?html,js,output

1 ответ

Решение

Обычно в модели вы сохраняете дату в формате ISO, как у вас уже есть, и форматируете ее в виде по своему усмотрению, используя date фильтр ( документация):

<div>{{vm.model.date | date: 'yyyy/MM/dd'}}</div>

Если вы все равно хотите изменить формат в модели, введите $filter и использовать date Фильтруйте как следующее:

$filter('date')(date_value, format, timezone)

например:

$filter('date')(vm.model.date, 'yyyy/MM/dd');

В качестве альтернативы, если вы много манипулируете датами, может пригодиться библиотека, такая как moment.js.


Изменить: заметил, что вы хотите изменить значение модели даты в конкретном контексте angular-formly с компонентом DatePicker. Компоненту необходимо, чтобы значение модели даты было в стандартном формате, но вы можете иметь другое свойство с соответствующей отформатированной датой, которое вы установили бы при изменении ввода даты:

HTML (на указателе даты input ):

ng-change="vm.setFormattedDate(dt)"

контроллер:

vm.setFormattedDate = function (datetime) {
    vm.model.formattedDate = $filter('date')(datetime, 'yyyy/MM/dd');
}
Другие вопросы по тегам