我正在将d3.jsangularjs一起使用。当在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/

10-11 05:38
查看更多