次のようにテキスト関数からhtmlを返せるようにしたい:
textEnter.append("tspan")
.attr("x", 0)
.text(function(d,i) {
return 'some text' + '<br/>' + d.someProp;
})
を使用しようとしまし<br>
たが、機能しませんでした。どうすればこれを達成できますか?
次のようにテキスト関数からhtmlを返せるようにしたい:
textEnter.append("tspan")
.attr("x", 0)
.text(function(d,i) {
return 'some text' + '<br/>' + d.someProp;
})
を使用しようとしまし<br>
たが、機能しませんでした。どうすればこれを達成できますか?
編集された回答
ここで tspan を使用していることに気付きました。残念ながら、svg テキスト要素に改行を挿入することはできません。SVG を使用した複数行のテキストでは、テキストを自分で分割し、dy
属性を設定してレイアウトする必要があります。D3 を使用すると、レイアウト プロセスが非常に簡単になりますが、それでも追加の作業が必要です。
ここの導入段落の詳細情報: http://www.w3.org/TR/SVG/text.html
OLD ANSWER (svg ではなく html 要素を使用する場合に適用)
D3 には、このための別のメソッドがあります。このhtml()
メソッドは、同様に機能しますtext()
が、エスケープされません。詳細はこちら。したがって、簡単に、次のものが必要です。
textEnter.append("tspan")
.attr("x", 0)
.html(function(d,i) {
return 'some text' + '<br/>' + d.someProp;
})