saveSvgAsPng - getBBox не является функцией

0

Я использую библиотеку exupero saveSvgAsPng для сохранения SVG в PNG файлах, но у меня возникла проблема при объединении с Angular-Nvd3.

Я получаю сообщение об ошибке:

Uncaught TypeError: el.getBBox не является функцией

Который мне кажется, что функция не может "захватить" SVG-элемент из моего nvd3-элемента.

Мой код выглядит так:

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");
  }

Любые предложения о том, как сделать эту работу должным образом, будут оценены.

Теги:
svg
nvd3.js
angular-nvd3
angularjs-nvd3-directives

1 ответ

1
Лучший ответ

Я не использовал эту библиотеку saveSvgAsPng, но я думаю, она ожидает, что вы передадите ей указатель на элемент SVG, а не элемент AngularJS, который его окружает.

Попробуйте следующее:

function saveAsPng() {
   var svg = document.getElementById("chart1-svg").getElementsByTagName("svg")[0];
   saveSvgAsPng(svg, "diagram.png");
}    
  • 0
    как я могу использовать его в угловых 2 +?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню