ho intenzione di aggiungere un elemento SVG facendo clic su un tasto:Come aggiungere un elemento SVG in fase di esecuzione - angolare
myApp.directive('addRectangle', function() {
return function(scope, element, attr) {
element.bind('click',function() {
scope.rectCount++;
angular.element(document.getElementsByClassName('svgMain')).append('<circle r=5 cx=200 cy=200 fill=red data-scope='+scope.rectCount +' />');
});
}
});
L'elemento sarà aggiunto correttamente come mi aspetto, ma il problema è che è non mostrato nella posizione correlata! Ho controllato l'html di origine della pagina e ne sono completamente sicuro. Questo è il violino di questa domanda: jsfiddle
Inoltre, sto usando la versione angular
1.4.x
.
Presumibilmente l'append sta mettendo i dati nello spazio dei nomi sbagliato simili a questo problema jquery http://stackoverflow.com/questions/3642035/jquerys-append-not-working-with-svg-element –
@RobertLongson aggiungo xmlns = "http://www.w3.org/2000/svg" attributo sia all'elemento svg che al cerchio, ma non vi è alcuna differenza nel risultato. –
Non ci sarebbe. È necessario utilizzare createElementNS idealmente o se innerHtml funzionerà in molti (ma non in tutti gli UA). –