首页 文章

节点数据更改时触发d3更新

提问于
浏览
0

我有数据(可以是几千个节点)看起来像这样绑定在d3:

{ 
    "key1": 1,
    "key2": 2
    ...
}

有时可以修改 key1 ,而 key2 更改的其他地方 . 当我用这个新内容调用 data 时,如何告诉d3重绘已修改的元素?

在下面的示例中,如果其中一个关键字段在 inputData 中发生更改,那么我想调用此代码以触发重绘受影响的项目:

svg.selectAll('.node')
    .data(inputData, function (d) { return d; });
    .append('g')
    .attr('class', function(d) { 
        if(d.key1 === 1) return 'node-class-A'
        else if(d.key2 === 2) return 'node-class-B'
        // etc
    });

1 回答

  • 0

    有关为Force布局实现的D3的常规更新模式,请参阅https://bl.ocks.org/mbostock/1095795 . 只要您以这种方式绘制图形,就可以调用更新函数以使用更新的数据重绘图形 .

    只需在某些类型的监听器中调用更新数据,无论是文本输入,按钮,选择框等等...

相关问题