使用JSNI在GWT应用程序中使用d3脚本
我正在尝试将d3脚本集成到gwt web应用程序中。但是,我不知道如何从JSNI运行d3。d3代码单独运行良好;我想知道这可能是因为d3代码无法访问div元素?使用JSNI在GWT应用程序中使用d3脚本,gwt,jsni,d3.js,Gwt,Jsni,D3.js,我正在尝试将d3脚本集成到gwt web应用程序中。但是,我不知道如何从JSNI运行d3。d3代码单独运行良好;我想知道这可能是因为d3代码无法访问div元素? 这就是我所遵循的方法: +在主html文件头中添加“script”标记,以指定d3库 +使用JSNI将以下d3代码放入一个方法中,并在onModuleLoad()中调用该方法。d3代码访问根面板也在使用的主div元素 /*-{ var w = 960, h = 800; var svg = d3.select("#ch
这就是我所遵循的方法:
+在主html文件头中添加“script”标记,以指定d3库
+使用JSNI将以下d3代码放入一个方法中,并在onModuleLoad()中调用该方法。d3代码访问根面板也在使用的主div元素
/*-{
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访问第二个div
在这两种情况下,都没有出现任何情况。你知道怎么用吗?你知道吗
首先:
这里不是花园品种JS,您需要遵守JSNI文档中的规则。请参阅关于JSNI库包装的部分。除了前面提到的内容,您还可以查看。
d3.js和protovis具有相似的设计(都是由开发的)
因此,您可以从protovisGWT包装器中获得许多想法,甚至还可以为d3.js实现GWT包装器。我总结了一个如何将d3集成到GWT的简短示例: 基本上,您可以使用 JSNI并将它们传递到JavaScript方法中 其中包含d3代码: 很晚的回答…
但项目可能就是你想要的:
这是一个围绕着d3.js的GWT包装器@Ehsan请参考这篇文章以获得一个快速、简单的教程。非常感谢您提供的有用信息。我会根据评论和结果更新帖子。非常感谢你的帮助。我会按照评论,并用结果更新帖子。