私はd3でデータをレンダリングしています。次のように、nodes
.enter() を使用して一連の SVG グループを作成するリストがあります (簡略化):
nodes = [{name: "Fred"}, {name: "Barney"}];
var node = vis.selectAll(".node")
.data(nodes)
.enter().append("svg:g")
.attr("class", "node");
var circ = node.append("svg:circle")
.attr("x", 0)
.attr("y", 0)
.attr("r", 10)
node.append("svg:text")
.attr("dx", 0)
.attr("dy", 0)
.text(function(d) { return d.name });
ただし、listitem の を編集するname
と、SVG テキスト要素は更新されません (属性はtext
作成時にのみ呼び出されるため)。変更されたリスト項目に対応する SVG グループを「再作成」するように d3 に指示するにはどうすればよいですか? これは強制レイアウトの一部として行っているため、text
ティックごとに attr を設定できますが、それはかなり洗練されていません。