什么是dateFilter,我在哪里可以找到更多相关信息?

时间:2013-12-26 17:33:39

标签: angularjs angularjs-directive datefilter

我正在浏览有关指令的Angular文档:http://docs.angularjs.org/guide/directive

页面上的一个示例(完整的工作示例http://jsbin.com/osOQOYag/3/edit?html,js,output

angular.module('docsTimeDirective', [])
  .controller('Ctrl2', function($scope) {
    $scope.format = 'M/d/yy h:mm:ss a';
  })
  .directive('myCurrentTime', function($interval, dateFilter) {

    function link(scope, element, attrs) {
      var format,
          timeoutId;

      function updateTime() {
        element.text(dateFilter(new Date(), format));
      }

      scope.$watch(attrs.myCurrentTime, function(value) {
        format = value;
        updateTime();
      });

      element.on('$destroy', function() {
        $interval.cancel(timeoutId);
      });

      // start the UI update process; save the timeoutId for canceling
      timeoutId = $interval(function() {
        updateTime(); // update DOM
      }, 1000);
    }

    return {
      link: link
    };
  });

在线:

.directive('myCurrentTime', function($interval, dateFilter) {

我不能在我的生活中找到关于.directive原型的任何信息,也无法在任何地方的dateFilter上找到任何文档。另外,我知道在AngularJS的非缩小版本中可以找到dateFilter(尽管名称在缩小版本中消失)。任何人都可以提供一些指导(可能还有一个链接)来解释有关dateFilter和类似功能的更多信息吗?

1 个答案:

答案 0 :(得分:28)

日期过滤器文档位于:http://code.angularjs.org/1.2.5/docs/api/ng.filter:date

以下是解释过滤器注入的文档的一部分:http://code.angularjs.org/1.2.5/docs/guide/filter#using-filters-in-controllers-and-services

过滤器通常用在视图表达式({{myDate | date:'short'}})中,但它们也可以在JS代码中使用。通过将字符串Filter附加到过滤器名称(例如date - > dateFilter)来注入过滤器。

app.controller('MyCtrl', function($scope, dateFilter, lowercaseFilter){
  $scope.myDate = new Date();
  $scope.myDateFormatted = dateFilter($scope.myDate, 'shortDate');

  $scope.myString = 'Some String';
  $scope.myStringLowerCased = lowercaseFilter($scope.myString);
});

PLUNKER