2013-05-20 10 views
10

Voglio essere in grado di tornare html dalla funzione testo come questo:Come restituire html nella funzione di testo d3?

textEnter.append("tspan") 
      .attr("x", 0) 
      .text(function(d,i) { 
      return 'some text' + '<br/>' + d.someProp; 
      }) 

provato ad usare &lt;br&gt;, ma neppure scusata lavoro. Come ottengo questo?

+2

Non so di d3, ma ho notato che stai impostando il testo come codice html. Non puoi fare qualcosa come '.html' o' .innerHTML' invece di '.text()'? – BBog

risposta

14

RISPOSTA A CURA

appena notato che si sta lavorando con un tspan qui. Purtroppo non è possibile inserire interruzioni di riga in elementi di testo svg. Il testo multilinea con SVG richiede di suddividere il testo manualmente e quindi di definirlo impostando l'attributo dy. D3 rende il processo di stesura piuttosto semplice, ma richiede ancora un lavoro extra.

Maggiori informazioni nel paragrafo introduttivo qui: http://www.w3.org/TR/SVG/text.html

VECCHIO RISPOSTA (si applica se si utilizza elementi HTML, non SVG)

D3 ha un metodo separato per questo: il metodo html(), che funziona come text() ma senza caratteri maiuscoli. More info here. Quindi, abbastanza facilmente, hai solo bisogno:

textEnter.append("tspan") 
     .attr("x", 0) 
     .html(function(d,i) { 
     return 'some text' + '<br/>' + d.someProp; 
     }) 
+2

non funziona per qualche motivo – Isaac

Problemi correlati