我可以在AngularJS中的过滤器内使用过滤器吗?

时间:2014-05-13 09:33:13

标签: javascript angularjs filter angularjs-scope

我只是创建一个过滤器来将我的日期转换为时间。我会打电话给AngularJS的官方过滤器“日期”。

project.date_created_atproject.mel的格式不同。因此,我需要为project.date_created_at创建自定义过滤器。

HTML:

<span>{{ project.date_created_at | dateCustom }}</span>
<span>{{ project.mel | date:'dd/MM/yyyy' }}</span>

JS:

myApp.filter('dateCustom', function () {
    return function (input) {

        if(input != undefined) {
            var d = new Date(input);
            var time = d.getTime();
            // use official $filter('date') here ?
        }

    }
});

我想使用这种格式:

date:'dd/MM/yyyy'

1 个答案:

答案 0 :(得分:12)

您可以将$ filter作为依赖项注入,就像对控制器,服务或指令一样。

myApp.filter('myFilter',[ '$filter', function ($filter) {
    return function (input) {
      /**
         Do your stuff
      **/
      return $filter('date')(myDate,myFormat);
    }
}]);

另外,您应该使用angular.isDefined代替!= undefined

有关详细信息,请参阅$filterdate的文档