2016-03-28 8 views
0

Ich bin sehr neu zu d3.js und möchte diesen Code-Stift konvertieren: http://codepen.io/budelman/pen/NqZwpm fand ich zu einer Winkelrichtlinie. Ein Problem, mit dem ich konfrontiert bin, ist, dass ich in der Winkelrichtlinie nur auf ein "Element" zugreifen kann. Ich kann nicht herausfinden, wie man die div # -Textboxlegende in meinen Winkelcode einfügt.Append D3 Element in Winkeldirektive

Ich habe versucht:

// Shove the text into the div with ID #textbox    
svg.append('div') 
.attr('id','textbox') 
.select("#textbox") 
.text(string); 
}) 

Aber es funktioniert nicht. Kann mir bitte jemand in die richtige Richtung zeigen? Vielen Dank!

+0

Sie verwenden [Methode Verkettungs] (http://alignedleft.com/tutorials/d3/chaining-methods), was bedeutet, dass Wenn Sie '.select (" # textbox ") aufrufen, sucht es nach dem Element mit der ID' textbox' innerhalb des angehängten 'div', weil Sie es an eine Methode gekettet haben, die das div zurückgegeben hat. Entweder die Select-Zeile ganz loswerden oder sie in 'svg.select (" # textbox ") ändern ...' – JSBob

Antwort

0

das ist, was Sie in der Original-Code haben,

.on("mouseover", function(d) { 
      //some code 

      // Shove the text into the div with ID #textbox 
      d3.select("#textbox") 
       .html("") 
       .append("text") 
       .html(string); 
     }) 

, die bedeutet, dass Sie ein leeres div mit einer id nur brauchen, und dann html in sie einfügen. Ich bin mir nicht sicher, warum Sie versuchen, zuerst die #textbox anzuhängen und dann html einzufügen. haben Sie einfach die in Ihrer Direktive. auf diese Weise können Sie unabhängig wählen Sie einfach mit d3

+0

Mein Ziel ist es, eine eckige Direktive zu erstellen, die die Map und die Legende (Textbox) umschließt. Am Ende wäre der HTML-Code nur etwas wie Stella

+0

das ist in Ordnung. setze alles in die Direktivenvorlage –

0

Ich erkannte, wie dumm diese Frage war. Alles, was ich brauchen, ist, indem Sie einen neuen div an das Element anzufügen:

d3.select(element[0]).append("div").attr("id","textbox"); 
Verwandte Themen