【问题标题】:how use filter date in directive in AngularJS如何在AngularJS的指令中使用过滤日期
【发布时间】:2016-05-23 06:10:58
【问题描述】:

我有 ISO8601 格式的日期,我必须将其重新格式化为指令中的 'dd/MM/yy HH:mm:ss' 格式,但它不起作用。日期以原始格式显示。

指令:

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

        }
    };
});

指令用法:

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

【问题讨论】:

  • 应该是{{notices[$index].CreationTime}},而不是'{{notices[$index].CreationTime}}'。删除单引号。

标签: angularjs angularjs-directive angularjs-filter


【解决方案1】:

是的,JB Nizet 的回答很好:)。

但完整的解决方案在这里:

指令用法(去掉单引号):

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

指令更新:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-12-30
    • 2017-01-15
    • 1970-01-01
    • 1970-01-01
    • 2016-03-07
    • 1970-01-01
    • 1970-01-01
    • 2014-01-06
    相关资源
    最近更新 更多