2017-09-19 4 views
0

Ich versuche, d3-wordcloud (https://github.com/jasondavies/d3-cloud) in meinem GWT-Projekt zu verwenden. Ich eingeschlossen in meinem HTML-Datei:d3-wordcloud in GWT

<script src="https://code.jquery.com/jquery-3.1.1.min.js"></script> 
<script src="https://d3js.org/d3.v3.min.js"></script> 
<script type="text/javascript" language="javascript" src="d3.layout.cloud.js"></script> 
<script type="text/javascript" language="javascript" src="main.js"></script> 

Wo main.js 'eine Methode hat, die diesen Code enthält:

d3.layout.cloud().size([width, height]) 
     .timeInterval(20) 
     .words(word_entries) 
     .fontSize(function(d) { return xScale(+d.value); }) 
     .text(function(d) { return d.key; }) 
     .rotate(function() { return ~~(Math.random() * 2) * 90; }) 
     .font("Impact") 
     .on("end", draw) 
     .start(); 

Wenn ich versuche, die Methode aus der HTML-Datei zu nennen, Die Wortwolke wird in Ordnung erzeugt. Aber wenn ich es aus einer Java-Datei zu tun (mit $ wnd), bekomme ich diesen Fehler:

Uncaught TypeError: d3.layout.cloud is not a function' error 

Ich glaube, das sein könnte, weil die d3.layout.cloud.js in Knoten js geschrieben und GWT doesn‘ Ich weiß, wie man damit arbeitet.

Ist das der Grund? Gibt es eine Problemumgehung?

Zusatzinfo: Ich benutze GWT 2.7. Gut mit Java. Null Knoten js Fähigkeiten!

+1

Was meinen Sie mit "mit $ wnd"? Kannst du diesen GWT-Code hinzufügen? –

+0

Ihr Problem hängt wahrscheinlich damit zusammen, wie Sie $ wnd verwenden, aber Sie müssen den Quellcode einbeziehen, um zu sehen, warum er fehlschlägt. Es ist auch eine gute Idee, beim Ausnahmeblockpoint zu aktivieren und zu sehen, ob d3 die Cloud korrekt geladen hat. –

Antwort