2016-04-05 18 views
0

<g class='entity'>... everything missing here ... </g> 

Ben alt ch istiyorum DOM'da Güncel HTML Özel açısal yönergeye sahip alt öğeler nasıl eklenir?

<g class='entity'> 
    <rect /> 
    <circle /> 
    ... 
</g> 

Yeni/İstenen HTML

<box> 
    <rect /> 
    <circle /> 
    ... 
</box> 

Basit Yönergesi

app.directive('box', ['$document', function ($document) { 
    return { 
     restrict : 'E', 
     replace: true, 
     template: "<g class='entity'></g>" 
    }; 
}]); 

Sonucu Yerleştirilecek ild elemanları.

cevap

1

Aradığınız şeylere transkripsiyon denir. transclude eklerseniz: true direktifinizin tanımına göre tüm alt öğeler korunur. Şablon sadece kutu öğesini geçersiz kılacak, ancak iç içeriği koruyacaktır.

app.directive('box', ['$document', function ($document) { 
return { 
    restrict : 'E', 
    replace: true, 
    transclude: true, 
    template: "<g class='entity'></g>" 
}; 

}]);

+0

Nedense bunu iki kez denedim ama hiçbir şeyi etkilemiyor mu? AngularJS 1.5x kullanıyorum. – sprocket12

+1

Alt öğe öğelerinin çıktısını belirlemek için şablondaki 'ng-transclude' yönergesini koymanız gerekmiyor mu? "Şablon:": "'? –

+1

Aslında hayır, ng-transclude köşeli açılamazsa, otomatik olarak üst öğede olduğunu varsayar (bu durumda g). Daha karmaşık DOM yapısını tanımlamak ve bazı iç elemanlar üzerinde transkripsiyona sahip olmak istiyorsanız ng-transclude ihtiyacınız var - Bu klavyeyi görün: https://jsfiddle.net/Lt7aP/ 2503/ –

İlgili konular