В древовидной карте d3.js новые данные не отображаются - PullRequest
2 голосов
/ 27 марта 2012

Это моя первая попытка d3.js, и я не могу понять, как перерисовать древовидную карту. Я пытаюсь загрузить новые данные в пример древовидной карты , используя запрос json. Я добавил следующий код в мой treemap.js.

d3.select(".search_field").on("click", function(){
    d3.json("/applications.json?search=Applejuice", function(json) {
        div.data([json]).selectAll("div")
            .data(treemap.nodes)
            .enter().append("div")
            .attr("class", "cell")
            .style("background", function(d) { return d.children ? color(d.name) : null; })
            .transition()
            .duration(1500)
            .call(cell);
   }); 
});

Я проверил var div после завершения запроса и правильной загрузки данных в объект.

1 Ответ

2 голосов
/ 27 марта 2012

Вы добавляете новые элементы вместо обновления существующих.Об этом позаботится строка

.enter().append("div")

, которую следует удалить, если вы хотите обновить существующие данные.Позвонив по номеру .enter() после .data(), вы получите данные, которых раньше не было, .exit() данные, которых больше нет.Если вы обнаружите, что старые и новые данные слиты неправильно, вы можете использовать необязательный второй аргумент для .data() для предоставления функции слияния.

...