我正在将d3.js和angularjs一起使用。当在svg对象(通过angular指令呈现)中使用超链接时,出现此错误。
根据doc here,svgAnimatedString没有任何特定方法。我该如何解决。我可以注入(inject)一种方法或任何其他方式。
下面的部分代码。谢谢。
svg.selectAll("a.node")
.data(data)
.enter().append("a")
.attr("class", "node")
.attr("xlink:href", "test")
.append("rect")
最佳答案
各种库都遇到了此问题(即here)。在SVG中,当您尝试获取 anchor 的href属性时,它将返回SVGAnimatedString
。您可以使用SVGAnimatedString.baseVal
获得实际的字符串。我不知道如何在不修补Angular的情况下做到这一点,但这将使您了解所需的内容:
this.$$rewriteAppUrl = function(absoluteLinkUrl) {
if (absoluteLinkUrl.baseVal != null) {
absoluteLinkUrl = absoluteLinkUrl.baseVal;
}
if(absoluteLinkUrl.indexOf(appBaseUrl) == 0) {
return absoluteLinkUrl;
}
}
关于javascript - SvgAnimatedString缺少方法indexOf,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12588913/