Qu'est-ce que dateFilter et Où puis-je en savoir plus à ce sujet?

Je passe en revue la documentation angulaire sur les directives: http://docs.angularjs.org/guide/directive

Un des exemples sur la page (Exemple de travail complet ici http://jsbin.com/osOQOYag/3/edit?html,js, sortie

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
    };
  });

Sur la ligne:

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

Je ne peux pas pour la vie de moi trouver des informations sur la .prototype de directive et ne trouve aucune documentation sur dateFilter nulle part non plus. En outre, je sais que dateFilter est trouvé dans le non-minifié version de AngularJS (bien que le nom disparaisse dans la version minifiée). Quelqu'un peut-il fournir des conseils (et éventuellement un lien) expliquant plus sur dateFilter et des fonctions similaires?

22
demandé sur Adrian Cid Almaguer 2013-12-26 21:33:38

1 réponses

Les documents de filtre de Date sont ici: http://code.angularjs.org/1.2.5/docs/api/ng.filter:date

Voici une partie des documents qui expliquent l'injection de filtre: http://code.angularjs.org/1.2.5/docs/guide/filter#using-filters-in-controllers-and-services

Filtres sont généralement utilisés dans les expressions de vue ({{myDate | date:'short'}}), mais ils peuvent également être utilisés dans votre code JS. Les filtres sont injectés en ajoutant la chaîne Filter au nom du filtre (par exemple 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

28
répondu Stewie 2013-12-26 17:53:44