我有属性标题的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' }}
所以过滤不适用。怎么编译这个字符串或者我做错了?
答案 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'这个表达式的内部引号中