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 に答える