而不是必须为每个对date
过滤器的调用定义一个自定义格式,有没有一种方法可以全局定义默认格式('medium'
除外)?
我希望在一个文件中设置格式,而不是在我的代码中到处设置(日期格式可能最终会在未来被更改,在一个文件中进行修改将比在许多文件中进行更改要好得多)。
这就是我现在要做的(每次定义日期格式):
{{systemTime | date:'dd MMMM @ HH:mm:ss'}}
{{modifiedTime | date:'dd MMMM @ HH:mm:ss'}}
{{getShippedTime() | date:'dd MMMM @ HH:mm:ss'}}
etc.
我正在考虑创建一个自定义过滤器(让我们称之为myDate
),它将充当一个包装器,然后将日期字符串传递给具有我的自定义格式的Angular date
过滤器,这样我的代码就可以如下所示:
{{systemTime | myDate}}
{{modifiedTime | myDate}}
{{getShippedTime() | myDate}}
etc.
但是,我不知道如何让myDate
滤镜指向角度date
滤镜。
谢谢你的帮助。
发布于 2013-08-23 20:16:10
基于更多的研究,然后考虑现代度的评论,我发现以下myDate
过滤器可以工作:
.filter('myDate', function($filter) {
var angularDateFilter = $filter('date');
return function(theDate) {
return angularDateFilter(theDate, 'dd MMMM @ HH:mm:ss');
}
});
发布于 2014-04-08 18:01:37
尝尝这个
angular.module('yourmodule').filter('myDate', function($filter)
{
return function(input)
{
if(input == null){ return ""; }
var _date = $filter('date')(new Date(input), 'dd MMMM @ HH:mm:ss');
return _date.toUpperCase();
};
});
Html
{{systemTime | myDate}}
发布于 2016-03-07 23:53:16
使用一个装饰物,
这不是您明确要求的,请使用decorator。它内置在angular中,设计用于修补services
、directives
、filters
等。
在您的示例中,如果未提供日期筛选器,则应使用自定义日期格式。
app.config(function ($provide) {
$provide.decorator('dateFilter', function ($delegate) {
return function () {
// Check if the date format argument is not provided
if (!arguments[1]) {
arguments[1] = 'dd MMMM @ HH:mm:ss';
}
var value = $delegate.apply(null, arguments);
return value;
};
})
});
https://stackoverflow.com/questions/18389168
复制相似问题