從AngularJS 1.3.0-rc.5
開始,您可以通過指定templateNamespace: 'svg'
和replace: true
並指定您的指令爲SVG
。在此版本之前,SVG
沒有真正的一流支持,如果無法從1.2.x
上移,您會發現自己正在竊取。您還需要注入並利用$compile服務來附加動態指令。觀察下面的簡單示例...
<svg id="mysvg">
<rect height="100" width="100" fill="dodgerblue"></rect>
</svg>
.controller('ctrl', function($scope, $compile) {
var node = angular.element(document.getElementById('mysvg'));
node.append($compile('<my-directive></my-directive>')($scope))
})
.directive('myDirective', function() {
return {
templateNamespace: 'svg',
template: '<rect height="10" width="100" fill="tomato"></rect>',
replace: true,
link: function(scope, elem, attrs) {
console.log('linked');
}
}
});
JSFiddle Link - 工作演示v.1.3.0
您還可以檢查出一些project discussion here爲SVG
支持AngularJS中的里程碑項目。
你需要編譯它 – cirtrus