我正在尝试在我的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技能!
答案 0 :(得分:1)
感觉您只需使用cloud()...
代替d3.layout.cloud()...
见第10行:https://github.com/jasondavies/d3-cloud/blob/master/examples/node.js