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

Ste*_*ffi 7 javascript filter angularjs angularjs-scope

我只是创建一个过滤器来转换我的日期.我会在AngularJS的官方过滤器"日期"中调用.

project.date_created_at并且project.mel格式不同.所以我需要创建一个自定义过滤器project.date_created_at.

HTML:

<span>{{ project.date_created_at | dateCustom }}</span>
<span>{{ project.mel | date:'dd/MM/yyyy' }}</span>
Run Code Online (Sandbox Code Playgroud)

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 ?
        }

    }
});
Run Code Online (Sandbox Code Playgroud)

我想用这种格式:

date:'dd/MM/yyyy'
Run Code Online (Sandbox Code Playgroud)

Jul*_*ien 12

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

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

另外,您应该使用angular.isDefined而不是!= undefined.

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