我正在尝试将 d3 脚本集成到 gwt web-app 中。但是我无法弄清楚如何从 JSNI 运行 d3。d3 代码单独运行良好;我想知道这可能是因为 d3 代码无法访问 div 元素?
这是我正在遵循的方法:
+ 在主 html 文件头中添加“脚本”标签,以指定 d3 库
+ 使用 JSNI 将以下 d3 代码放入方法中,并在 onModuleLoad() 中调用该方法。d3 代码访问主 div 元素,rootPanel 也在使用该元素。
/*-{
var w = 960, h = 800;
var svg = d3.select("#chart2")
.append("svg:svg")
.attr("width", w)
.attr("height", h)
.append("svg:g")
.attr("transform", "translate(40, 0)");
svg.selectAll("circle")
.data([ 32, 57, 112, 293 ])
.enter()
.append("circle")
.attr("cy", 90)
.attr("cx", String)
.attr("r", Math.sqrt);
}-*/;
我还尝试了另一种方法;我在 Java 类的 HTML 元素中添加了另一个 div 元素,并尝试从 d3.xml 访问第二个 div。
在这两种情况下都没有出现。知道它是如何工作的吗?