2016-08-03 3 views
2

Можно ли ввести новый сокращенный формат в фильтр угловых дат?Добавить новый формат в Фильтр угловых дат?

Например, я могу в настоящее время сделать это: {{ myScope.timestamp | date: 'shortDate' }}.

Что бы я хотел сделать, это: {{ myScope.timestamp | date: 'paddedShortDate' }}, что заставило бы одноразрядные детали даты дополняться ведущим 0.

Я понимаю, что могу создать свой собственный фильтр, чтобы сделать это для меня — Мне более любопытно, если существующие фильтры обширны каким-либо образом.

+0

Whelp, сделал несколько исправлений и перечитал несколько вещей, но я нашел способ сделать это. – FrankerZ

ответ

2

Рассматривая исходный код here, DATE_FORMATS получен из $locale. Хотя я бы не рекомендовал редактировать их (как $locale.DATE_FORMATS является частным API, и может измениться в будущем), вы должны быть в состоянии сделать это с помощью блока выполнения:

app.run(['$locale', function($locale) { 
    $locale.DATETIME_FORMATS.paddedShortDate = 'MM/dd/yy'; 
}]); 

Как уже упоминалось, вы Ждут» t хочу создать еще один фильтр, но это, на мой взгляд, было бы лучшим способом. Простой фильтр должен работать нормально:

var MY_DATETIME_FILTERS = { 
    'paddedShortDate': 'MM/dd/yy' 
}; 

app.filter('myFormat', ['$filter', function($filter) { 
    return function(format) { 
     return $filter('date')(input, MY_DATETIME_FILTERS[format] || format); 
    } 
}]); 
+0

Небольшая корректировка для любых будущих посетителей этой страницы: 'return function (input, format) {return $ filter ('date') (input, MY_DATETIME_FILTERS [формат] || формат); } ' – core

+0

Я обновил свой ответ @core – FrankerZ

Смежные вопросы