3

我希望编写一个基本上可以改变这一点的指令:

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

to

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

这样在dom中,<g:text>元素已经完全被<svg>元素替换了

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

4

1 回答 1

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

​<a href="http://jsfiddle.net/mrajcok/jwzAV/" rel="nofollow">小提琴

于 2012-12-14T05:36:56.880 回答