嵌套指令不呈现

时间:2013-12-06 19:48:02

标签: javascript angularjs directive

我有一个使用MomentJS的格式化指令,它可以自行运行。它不会尝试维护绑定,但只是为了吐出格式化的日期。当我将它嵌套在另一个指令中时,它又使用ng-repeat指令,它不再起作用。需要更改以允许它呈现格式化日期?

http://jsfiddle.net/P2cu6/3/

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

谢谢!

1 个答案:

答案 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);
        }
    });

问候