Кэшируется ли древовидная карта d3 при передаче ему корневого узла?

Я пытался получить d3 treemap для анимации, и у меня было что-то вроде

<code>App.svg = d3.select("#medals-tree-map").append("svg:svg")
    .style("width", App.canvasWidth)
    .style("height", App.canvasHeight)
  .append("svg:g")
    .attr("transform", "translate(-.5,-.5)")
    .attr("id", "container");

App.treemap = d3.layout.treemap()
    .size([App.canvasWidth + 1, App.canvasHeight + 1])
    .value(function(d) { return d.number; })
    .sticky(true);

function drawGraphFromJson(data) {
  // Draw the graph
  var leaves = App.treemap(data);

  var cell = App.svg.selectAll("g.cell")
    .data(leaves);

  // More rendering code
}
</code>

На основании этого ответа:https://stackoverflow.com/a/9650825/111884

Тем не менее, карта дерева не меняется вообще, когда я звонюdrawGraphFromJson с новыми данными.

Я исправил проблему, определивApp.treemap внутриdrawGraphFromJson т.е.

<code>function drawGraphFromJson(data) {
  App.treemap = d3.layout.treemap()
    .size([App.canvasWidth + 1, App.canvasHeight + 1])
    .value(function(d) { return d.number; })
    .sticky(true);

  // Draw the graph
  var leaves = App.treemap(data);

  var cell = App.svg.selectAll("g.cell")
    .data(leaves);

  // More rendering code
}
</code>

Зачем мне это делать? Есть лиtreemap кэшироваться при переходе в корневой узел?

Ответы на вопрос(1)

Ваш ответ на вопрос