2016-05-23 4 views
0

Ich habe Datum im Format ISO8601 und ich muss es neu formatieren, um 'TT/MM/JJ HH: mm: ss' in der Direktive zu formatieren, aber es funktioniert nicht. Das Datum wird im Originalformat angezeigt.Wie Filterdatum in Direktive in AngularJS verwenden

Richtlinie:

app.directive('createTimeDirective', function ($filter) { 
    return { 
     restrict: 'E', 
     template: '<div style="font-size: 9px;"> Created at {{date2}}<div>', 
     //replace: true, 
     scope: { 
      date: '@' 
     }, 
     link: function (scope, elem, attrs) { 
      var dateFormat = 'dd/MM/yy HH:mm:ss'; 
      //scope.date = attrs.date; 
      scope.date2 = $filter('date')(attrs.date, dateFormat); 
      console.log(scope); 

     } 
    }; 
}); 

Richtlinie Nutzung:

<create-time-directive date="'{{notices[$index].CreationTime}}'"></create-time-directive>| 
+2

Es sollte 'sein {{bemerkt [$ index] .CreationTime}} ', not' '{{merkt [$ index] .CreationTime}}'. Entfernen Sie die einfachen Anführungszeichen. –

Antwort

0

Ja, Antwort von JB Nizet war gut :).

Aber die vollständige Lösung ist hier:

Richtlinie Nutzung (entfernt einfache Anführungszeichen):

<create-time-directive date="{{notices[$index].CreationTime}}"></create-time-directive>| 

Richtlinie aktualisiert:

app.directive('createTimeDirective', ['$filter', function ($filter) { 
    return { 
     restrict: 'E', 
     template: '<div style="font-size: 9px;"> Created at {{date2}}<div>',   
     scope: { 
     date: '@' 
    }, 
     link: function (scope, elem, attrs) { 
      var dateFormat = 'dd/MM/yy HH:mm:ss';   
      scope.date2 = $filter('date')(attrs.date, dateFormat);    
     } 
}; 
}]);