我試圖使用$compile
在控制器內創建一個元素,但無法讓它工作。
$scope.open_svg = function(){
var sc = $scope.$new(true);
sc.fill = "#0000ff";
var t = '<svg xmlns="http://www.w3.org/2000/svg" '+
'xmlns:xlink="http://www.w3.org/1999/xlink"> ' +
'<rect ng-attr-x="10" y="10" height="100" width="100" ' +
'style="stroke:#ff0000; fill:{{fill}}"/> ' +
'</svg>';
var svg = $compile(t)(sc);
open("data:image/svg+xml,\n" + encodeURIComponent(svg[0].outerHTML));
}
此相同的代碼在指令中正常工作。但正如你所看到的,我試圖打開一個新窗口,以便用戶可以保存SVG,並且我想這樣做,而不需要代碼在指令
是的,你幾乎是對的,我添加了我發現的答案。至於代碼中沒有HTML,我沒有。 SVG被渲染在一個單獨的對象中,我只是想打開它來保存。而這個功能只是創建一個新窗口。 – xcorat