D3.js Текстовые метки узлов, не показывающие [дубликат]

У меня есть вариант проблемы, потому что я храню веб-страницы от разных авторов и должен предотвратить открытие страниц путем догадок. Поэтому мои короткие URL-адреса добавляют пару дополнительных цифр в строку Base-62 для номера страницы. Эти дополнительные цифры генерируются из информации в самой записи страницы, и они гарантируют, что только 1 из 3844 URL-адресов являются действительными (при условии, что 2-значный Base-62). Вы можете увидеть описание схемы в http://mgscan.com/MBWL .

6
задан Shuan Wu 5 June 2016 в 08:45
поделиться

1 ответ

Прямо сейчас вы добавляете элементы text к элементам circle, и это просто не сработает.

Когда вы пишете ...

var label = nodes.append("svg:text")

Вы добавляете тексты к выбору nodes. Однако вы должны иметь в виду, что nodes:

var nodes = svg.selectAll("circle")
    .data(dataset.nodes)
    .enter()
    .append("circle")

Таким образом, вы добавляете тексты в круги, и это не работает. Они отображаются, когда вы проверяете страницу (как <circle><text></text></circle>), но ничего не будет отображаться в SVG.

Решение: просто измените на:

var label = svg.selectAll(null)
    .data(dataset.nodes)
    .enter()
    .append("text")
    .text(function (d) { return d.name; })
    .style("text-anchor", "middle")
    .style("fill", "#555")
    .style("font-family", "Arial")
    .style("font-size", 12);

скрипка: https://jsfiddle.net/gerardofurtado/7pvhxfzg/1/

11
ответ дан Gerardo Furtado 19 August 2018 в 19:53
поделиться