Amcharts 4 TreeMap Пуля ссылка - PullRequest
       26

Amcharts 4 TreeMap Пуля ссылка

0 голосов
/ 12 октября 2018

У меня есть одна карта дерева уровней от amcharts4.

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

В качестве документацииговорит, что я пытался:

level1_bullet.label.url = "https://www.google.com/";

или

level1_bullet.url = "https://www.google.com/";

оба не работают, я смог добавить

level1_bullet.label.html = "<a href='https://google.com/'>{name}</a>";

, но есть проблема с усечениемопция, которая не работает, и я вижу слишком большие имена для самых маленьких пуль, перенос также не помог.

1 Ответ

0 голосов
/ 18 октября 2018

Чтобы превратить LabelBullet в ссылку, попробуйте:

level1_bullet.label.url = "https://www.google.com/";

Если нам нужны динамические URL, нам нужно будет использовать адаптер .url - простая строка, которая на самом деле не предназначена для отображения, поэтому она не проходит через наше форматирование строки , что означает, что заполнители типа {name} не будут проанализированы.К счастью, у Label есть адаптер для их url.Это может выглядеть примерно так:

level1_bullet.label.adapter.add("url", function(url, label) {
  var query = "";
  var data = label.dataItem;
  if (data.dataContext && data.dataContext.name) {
    query = "?q=" + data.dataContext.name;
  }
  return url + query;
});

Обработчик адаптера имеет url, для которого в качестве первого аргумента установлено значение Label ("https://www.google.com/" в этом случае), а для экземпляра Label -Второй аргумент.То, что мы return заканчиваем тем, что являемся нашим отформатированным url, то есть оно не устанавливает его постоянно, это запускается каждый раз, когда ваше приложение выясняет, какое значение для url должно быть.

Я создал демо здесь:

https://codepen.io/team/amcharts/pen/79194dfcfccaa05f5ebe20e1095f3087

Дайте мне знать, если это имеет смысл, если это вообще помогает с тем, что вы хотели сделать.

...