Angularjs渲染指令,在body上有transclude

时间:2018-06-04 12:42:54

标签: angularjs directive angularjs-ng-transclude

我想创建一个带有transclude的工具提示属性指令,并在主体上渲染它。

例如:

<div tooltip>
    <transcluded-content>content</transcluded-content>
</div>

module.directive('tooltip', function () {
    return {
            restrict: 'A',
            templateUrl: 'tooltip.html',
            transclude: {
                'transcluded-content': 'transcluded-content'
            }
        };
    });

我想在正文上渲染模板而不是div ...

1 个答案:

答案 0 :(得分:2)

为了在身体上放置元素,您可以尝试在链接功能中移动它。怎么样?

module.directive('tooltip', function () {
    return {
            restrict: 'A',
            templateUrl: 'tooltip.html',
            transclude: {
                'transcluded-content': 'transcluded-content'
            },
            link: function (scope, element) {
                angular.element('body').append(element);
            }
        };
    });

有更复杂的方法,但它们需要$compile和其他混乱的技术。