【发布时间】:2016-10-23 09:34:12
【问题描述】:
<html ng-app="vg">
<body>
<justsvg width="100" height="25"></justsvg>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/3.4.11/d3.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<script>
var app = angular.module('vg', []);
app
.directive("justsvg", function(){
return {
restrict:"AE",
scope:{
width: "@",
height: "@"
},
template: "<svg width='{{width}}' height='{{height}}'></svg>"
}
})
</script>
</body>
</html>
所有:
我对 Angular 还是很陌生,当我尝试在指令中渲染 SVG 时,它不断给我错误,例如:
<svg> attribute width: Expected length, "{{width}}".
我的代码很简单:
.directive("justsvg", function(d3){
return {
restrict:"AE",
scope:{
width: "@",
height: "@"
},
template: "<svg width='{{width}}' height='{{height}}'></svg>"
}
})
我的使用方式是:
<justsvg data=data width="100" height="25"></justsvg>
我想知道为什么即使是这种简单的用法仍然会出错?另外,谁能告诉我如何调试这种错误?
有趣的是:即使我遇到了这个错误,SVG 仍然可以正确渲染
【问题讨论】:
-
尝试将
ng-if="width && height"添加到指令的模板中,或查看@Suren 的回答——我认为它们是正确的 -
将
ng-cloak添加到模板时会发生什么?"<div ng-cloak><svg width={{width}} height={{height}}></svg></div>"? -
@AlonEitan 同样的错误
-
这似乎是由于浏览器实现了 SVG github.com/angular/angular.js/issues/1050
标签: javascript angularjs svg