是否可以在Angular日期过滤器中注入新的速记格式?
例如,我目前可以这样做:{{ myScope.timestamp | date: 'shortDate' }}
。
我想做的是:{{ myScope.timestamp | date: 'paddedShortDate' }}
,它会强制使用前导0
填充一位数的日期部分。
我意识到我可以为我创建自己的过滤器 - 如果现有过滤器以任何方式扩展,我会更好奇。
答案 0 :(得分:2)
查看源代码here,从DATE_FORMATS
获取$locale
。虽然我不建议编辑这些(因为$locale.DATE_FORMATS
是私有API,并且将来可能会更改),但您应该可以通过运行块来执行此操作:
app.run(['$locale', function($locale) {
$locale.DATETIME_FORMATS.paddedShortDate = 'MM/dd/yy';
}]);
正如您所提到的,您不想创建另一个过滤器,但在我看来,这是更好的方法。一个简单的过滤器应该可以正常工作:
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);
}
}]);