我一直在尝试各种迭代声明指令来包装一些SVG元素无济于事。我想创建一组看起来像这样的指令:
<polar-graph id="G1">
<track id="T1">
<marker id="M1"></marker>
</track>
<track id="T2">
<marker id="M2"></marker>
</track>
</polar-graph>
应该像这样呈现:
<svg id="G1>
<g>
<circle id="T1"></circle>
<path id="M1"></path>
</g>
<g>
<circle id="T2"></circle>
<path id="M2"></path>
</g>
</svg>
使用Angular 1.3 beta中的新type
属性,我可以指出SVG元素(yay!),但是,我的问题是g
元素。这是我的模板:
.directive('polarGraph', function(){
return {
restrict : 'AE',
type : 'svg',
transclude : true,
replace : true,
template : '<svg ng-transclude></svg>'
...
}
})
.directive('track', function(){
return {
restrict : 'AE',
type : 'svg',
transclude : true,
replace : true,
template : '<g><circle></circle></g>' //Not sure how to include transcluded content after the circle
...
}
})
.directive('marker', function(){
return {
restrict : 'AE',
type : 'svg',
replace : true,
template : '<path></path>'
...
}
})
当我声明我的指令时,我希望track
指令的所有属性都映射到SVG的circle
而不是包含g
组。目前,Angular会自动设置id
组中的g
和所有其他属性。我怎样才能在Angular中正确地做到这一点?