我目前正在使用 d3 和数据的 json 对象实现一个图形。可以在此处找到此类图的工作示例:http: //bl.ocks.org/950642。如果你知道 d3,你当然可以直接跳到我的问题部分。
代码概览
所以,基本上在我的模板中,我有必要的最少代码:
<div id="main" class="lift:surround?with=default;at=content">
<div class="lift:GraphVisual.showGraph"></div>
</div>
然后在我的片段(GraphVisual.scala
)中,我有以下内容:
def showGraph = {
<h3>Bachelor 5/6 - Communication Systems</h3> ++
<div id="graph-container" width="500px" height="100px">
<script type="text/javascript" src="static/scripts/graph_script.js></script>
</div>
在定义图(graph_script
)的javascript文件中,我主要有以下内容
var vis = d3.select("#graph-container").append("svg:svg")
d3.json("static/scripts/jsonData.json", function(json) {
//Do stuff
}
我的问题
如果我将我的 json 数据存储在一个文件中,如上所示,一切正常。现在我想用lift生成我的json对象。所以我想有一个函数在 Lift 中返回图形的 json 对象表示并在脚本中使用它(应该是静态的)。
我试过的
假设我有以下值定义我的图表:
val graph = JObject(JField("nodes", JArray(List(...))), JField("links", JArray(List)))
我试图将此图定义为 d3 脚本上方脚本中的变量:
<script>{JsCrVar("myGraph", graph).toJsCmd}</script>
使用这种方法,我有一个myGraph
定义明确的变量,但我不知道如何访问它graph_script.js