我有一个使用MomentJS的格式化指令,它可以自行运行。它不会尝试维护绑定,但只是为了吐出格式化的日期。当我将它嵌套在另一个指令中时,它又使用ng-repeat指令,它不再起作用。需要更改以允许它呈现格式化日期?
angular.module('test').directive('payPeriodDropDown', function () {
return {
restrict: 'EA',
scope: {
sName: '@',
sClass: '@'
},
link: function ($scope, element, attr) {
$scope.timePeriods = ranges;
},
template: '<select name="{{sName}}" id="{{sName}}" class="{{sClass}}">' +
'<option ng-repeat="period in timePeriods" value="{{$index}}">' +
'<moment-format val="{{period.start}}" format="YYYY" ng-transclude></moment-format> - ' +
'<moment-format val="{{period.end}}" format="YYYY" ng-transclude></moment-format>' +
'</option>' +
'</select>'
}
});
谢谢!
答案 0 :(得分:1)
我无法直接解决您的问题,但是如果您使用过滤器来设置momentFormat而不是指令,那么它就能正常工作。
请参阅http://jsfiddle.net/P2cu6/6/
angular.module('test').filter('momentFormat', function () {
return function(input, format) {
var regexEpic = /^\d+$/ig;
var val = (regexEpic.test(input)) ? window.parseInt(input) : input;
return moment(val).format(format);
}
});
问候