1

我想创建一个替换指令:

   <my-overlay class="someOverlay">
      <h4>Coucouc</h4>
    </my-map-overlay>

和 :

<div class="someOverlay default-overlay">
 <h4>Coucouc</h4>
</div>

replace方法尚未弃用。

如何编写一个指令来操作 DOM 创建一个div,将default-overlay类添加到先前定义的类中,嵌入和替换<my-map>指令?

是否可以将过程划分为:DOM操作compile和嵌入link

4

1 回答 1

1

这是要删除的“替换”的提交: https ://github.com/angular/angular.js/commit/eec6394a342fb92fba5270eee11c83f1d895e9fb

如果您阅读了最后的一些评论,那么似乎根本不会弃用 replace 。然而,这可能是实现你想要的一种方式:

.directive('myOverlay', function(){
    return {
        restrict: 'E',
        template: '<div ng-transclude></div>',
        transclude: true,
        link: function (scope, element) {
            element.children()[0].setAttribute('class', element.attr('class') + ' default-overlay');
            element.replaceWith(element.children()[0]);
        }
    }
});

http://jsfiddle.net/b6ww0rx8/10/

于 2014-10-24T11:05:11.730 回答