我将角度改装为现有项目,其中日期输出为不需要的格式。 (2013年1月1日)
我想使用AngularJs日期过滤器来格式化日期。不幸的是,当前的日期字符串不是标准的ISO格式,我无法更改它们。
所以我想,最好的方法是在标准日期之前应用新的过滤器来解析日期。
ng-bind="prop.ApplicationDate | DateParse | date:fullDate"
angular.module('rjDateParse', [])
.filter('DateParse', function() {
return function(date) {
var parsedDate;
try {
parsedDate = Date.parse(date);
} catch (err){
parsedDate = date;
}
return parsedDate;
}
})
这很好用。
除了我知道这个格式的某些日期我会遇到的问题。例如,2013/12/01,可能会有两个截然不同的日期。
所以我想创建一个指令,允许点击日期在原始日期和解析日期之间切换。
我的问题:如果已使用过滤器,如何应用此指令。我不想手动为元素添加类或属性来触发它。
angular.module('rjDateParse', [])
.filter('DateParse', function() {
return function(date) {
var parsedDate;
try {
parsedDate = Date.parse(date);
} catch (err){
parsedDate = date;
}
return parsedDate;
}
})
.directive('DateParse', function() {
return {
//apply this only if dateparse filer is applied
}
});
提前致谢
罗布
P.S。我目前没有任何控制器 - 我试图保持这种方式:)
答案 0 :(得分:0)
您可以通过简单的方式更改角度“日期”过滤器的格式:
{{prop.dateToFormat | date:'yyyy-MM-dd'}}
此代码将日期格式化为标准ISO格式