現在、データに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>
グラフを定義するjavascriptファイル(graph_script
)には主に次のものがあります
var vis = d3.select("#graph-container").append("svg:svg")
d3.json("static/scripts/jsonData.json", function(json) {
//Do stuff
}
私の問題
上記のように、jsonデータをファイルに保存すると、すべて正常に機能します。次に、リフトを使用して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