我想创建一个替换:
的指令 <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>
指令?
是否可以按如下方式划分流程:compile
中的DOM操作和link
中的转换?
答案 0 :(得分:1)
这是“替换”的提交。即将被删除: https://github.com/angular/angular.js/commit/eec6394a342fb92fba5270eee11c83f1d895e9fb
如果你阅读了一些最后的评论,那么看起来似乎不会弃用。然而,这可能是实现你想要的方式:
.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]);
}
}
});