如何扩展或覆盖angularjs中的现有过滤器?

前端之家收集整理的这篇文章主要介绍了如何扩展或覆盖angularjs中的现有过滤器?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
是否可以扩展现有的“标准”过滤器(日期,数字,小写等)?
在我的情况下,我需要解析日期从YYYYMMDDhhmmss格式,所以我想扩展(或重写)日期过滤器,而不是写我自己的。
我不知道我是否正确理解你的问题,但如果你想扩展现有过滤器的功能,你可以创建一个新的过滤器来装饰一个现有的过滤器。例:
myApp.filter('customDate',function($filter) {
    var standardDateFilterFn = $filter('date');
    return function(dateToFormat) {
     return 'prefix ' + standardDateFilterFn(dateToFormat,'yyyyMMddhhmmss');
    };
});

然后,在您的模板:

{{now | customDate}}

说了以上,如果你只是想格式化一个日期根据给定的格式,这可以用现有的日期过滤器:

{{now | date:'yyyyMMddhhmmss'}}

这里是工作jsFiddle说明这两种技术:http://jsfiddle.net/pkozlowski_opensource/zVdJd/2/

请注意,如果没有指定格式,AngularJS将假定这是一个“中”格式(确切的格式取决于区域设置)。检查http://docs.angularjs.org/api/ng.filter:date更多。

最后一句话:我对你的问题的“解析”部分有点困惑。事情是,过滤器用于解析一个对象(在这种情况下的日期)到字符串,而不是反之亦然。如果你在解析表示日期的字符串(输入)之后,你必须查看NgModelController#$ parsers(检查http://docs.angularjs.org/guide/forms中的“自定义验证”部分)。

猜你在找的Angularjs相关文章