如何在不使用ng-transclude的情况下为angularjs编写替换dom元素的指令?

时间:2012-12-14 03:52:35

标签: javascript angularjs

我希望写一个基本上改变它的指令:

<g:text>Hello There</g:text>

to

<svg class="gx-text"><text>Hello There</text></svg>

因此,在dom中,<g:text>元素已完全被<svg>元素替换

我不想使用ng-transclude,因为我发现它在dom中添加了一堆其他元素。

1 个答案:

答案 0 :(得分:4)

var app = angular.module('app', []);
app.directive('gText', function() {
    return {
        restrict: 'E',
        compile: function(tElement, attrs) {
            tElement.replaceWith('<svg class="gx-text"><text>'
                + tElement.text() + '</text></svg>');
        }
    }
});

Fiddle