saveSvgAsPng - getBBox不是函数

时间:2015-08-21 10:05:02

标签: angularjs svg nvd3.js angularjs-nvd3-directives angular-nvd3

我正在使用exupero的saveSvgAsPng库将SVG保存到PNG文件中,但是在将它与Angular-Nvd3组合时遇到了问题。

我收到错误说:

  

未捕获的TypeError:el.getBBox不是函数

对我来说,似乎该函数无法从我的nvd3元素中“抓取”SVG元素。

我的代码如下所示:

HTML:

  <button onclick = "saveAsPng();" type="button" name="button"></button>

            <div id = "chart1-canvas">
              <nvd3 id = "chart1-svg" options="options1" data="data1"></nvd3>
            </div>

Javascript:

  function saveAsPng(){
    saveSvgAsPng(document.getElementById("chart1-svg"), "diagram.png");
  }

任何关于如何使这项工作正常的建议都将不胜感激。

1 个答案:

答案 0 :(得分:1)

我没有使用过saveSvgAsPng库,但我想它会希望你传递一个指向SVG元素的指针,而不是它周围的AngularJS元素。

尝试以下方法:

function saveAsPng() {
   var svg = document.getElementById("chart1-svg").getElementsByTagName("svg")[0];
   saveSvgAsPng(svg, "diagram.png");
}