GWT中的d3-wordcloud

时间:2017-09-19 06:56:18

标签: java node.js d3.js gwt

我正在尝试在我的GWT项目中使用d3-wordcloud(https://github.com/jasondavies/d3-cloud)。我把它包含在我的.html文件中:

<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> 

其中'main.js'有一个包含此代码的方法:

    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();

当我尝试从.html文件调用该方法时,生成的字云很好。但是当我从一个java文件(使用$ wnd)执行此操作时,我收到此错误:

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

我认为这可能是因为d3.layout.cloud.js是在节点js中编写的,而GWT不知道如何使用它。

这是原因吗?有解决方法吗?

附加信息:我使用GWT 2.7。用java很好。零节点js技能!

1 个答案:

答案 0 :(得分:1)

感觉您只需使用cloud()...代替d3.layout.cloud()...

见第10行:https://github.com/jasondavies/d3-cloud/blob/master/examples/node.js