如果应用特定过滤器,我该如何应用Angularjs指令?

时间:2014-02-04 16:31:27

标签: angularjs

我将角度改装为现有项目,其中日期输出为不需要的格式。 (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。我目前没有任何控制器 - 我试图保持这种方式:)

1 个答案:

答案 0 :(得分:0)

您可以通过简单的方式更改角度“日期”过滤器的格式:

{{prop.dateToFormat | date:'yyyy-MM-dd'}}

此代码将日期格式化为标准ISO格式