AngularJS属性指令。不编译价值

时间:2014-10-21 15:04:58

标签: angularjs angularjs-directive angularjs-filter

我有属性标题的Angular指令。

.directive('titleDate', function () {
    return {
        restrict: 'A',
        scope: {
            datetime: '=titleDate'
        },

        link: function($scope, element) {
            element.attr('title','{{ '+$scope.datetime+' | amDateFormat: \'D MMMM HH:mm\' }}');             
        }
    }
});

指令为组件添加标题。但是标题返回字符串表达式如:

{{ 21.04.2014:15.20.22 | amDateFormat: 'D MMMM HH:mm' }}

所以过滤不适用。怎么编译这个字符串或者我做错了?

2 个答案:

答案 0 :(得分:1)

在指令中使用过滤器的更好方法是注入$ filter服务:

$filter('amDateFormat')($scope.datetime, 'D MMMM HH:mm');

所以你的代码看起来像是:

.directive('titleDate', ['$filter', function () {
    return {
        restrict: 'A',
        scope: {
            datetime: '=titleDate'
        },

        link: function($scope, element) {
            element.attr('title', $filter('amDateFormat')($scope.datetime, 'D MMMM HH:mm'));             
        }
    }]
});

答案 1 :(得分:0)

日期21.04.2014:15.20.22应该在'21 .04.2014:15.20.22'这个表达式的内部引号中