我有数据(可以是几千个节点)看起来像这样绑定在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 回答
有关为Force布局实现的D3的常规更新模式,请参阅https://bl.ocks.org/mbostock/1095795 . 只要您以这种方式绘制图形,就可以调用更新函数以使用更新的数据重绘图形 .
只需在某些类型的监听器中调用更新数据,无论是文本输入,按钮,选择框等等...