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

时间:2018-12-09 12:50:27

标签: javascript d3.js

我有数据(可以是数千个节点),看起来像是在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 :(得分:0)

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

只需更改某种正在监听的数据的呼叫更新,无论是文本输入,按钮,选择框等...

相关问题