Установить всплывающую подсказку на графике plottablejs из директивы Angular

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

Я получил что-то вроде этого:

var plot = new Plottable.Plots.Line()
   .addDataset(ds)
   .x(project_x, xScale)
   .y(project_y, yScale)
   .attr('stroke', function(d) { return label; }, colorScale);

и оказывает с

var svgElem = elem.find('svg')[0];
plot.renderTo(svgElem);

Это работает отлично:), а затем я пытаюсь добавить несколько подсказок из этого примера: http://jsfiddle.net/gv1xsnkr/

// Initializing tooltip anchor
var tooltipAnchorSelection = plot.foreground().append("circle").attr({
  r: 3,
  opacity: 0
});

В примере они используют jquery, я не хочу импортировать jquery только для этого

var tooltipAnchor = $(tooltipAnchorSelection.node());
tooltipAnchor.tooltip({
  animation: false,
  container: "body",
  placement: "auto",
  title: "text",
  trigger: "manual"
});

Поэтому я пытаюсь сделать это так

var tooltipAnchor = document.querySelectorAll(tooltipAnchorSelection.node().nodeName);

Но я получаю ошибку на

tooltipAnchor.tooltip({ ... });

angular.js:14516 Ошибка типа: tooltipAnchor.tooltip не является функцией

Кто-нибудь получил ключ, чтобы сделать это?

1 ответ

У меня была эта проблема с использованием Vue.js, а не Angular, но проблема звучит очень похоже. Это была проблема импорта библиотек в правильном порядке:

  • Первый jquery (требуется для начальной загрузки)
  • Затем начальная загрузка

Как вы упаковываете свое приложение?

Я использовал gulp, поэтому последовательность, которая работала для меня, заключалась в том, чтобы поместить тег сценария jquery в index.html а также bootstrap = require('bootstrap') в компоненте vue (вы бы поместили его в директиву). Требование в начальной загрузке должно быть все, что необходимо - это даст вам доступ к tooltip функция.

Другие вопросы по тегам