我有数据(可以是数千个节点),看起来像是在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
});
答案 0 :(得分:0)
有关为强制布局实施的D3的常规更新模式,请参见https://bl.ocks.org/mbostock/1095795。只要以这种方式绘制图形,就可以调用update函数以使用更新后的数据重新绘制图形。
只需更改某种正在监听的数据的呼叫更新,无论是文本输入,按钮,选择框等...