10

完成新手问题:

我有一个 Django 应用程序正在运行,我在其中生成一个包含数据的视图:

result = json.dumps(data)

context = RequestContext(request, {
    'result': result,
})

return HttpResponse(template.render(context))

现在我有一个map.js文件,我在其中使用d3.js. 我还有一个index.html文件,我的页面在其中呈现,热图参考通过

<body>
 <div id="heatMap">
 </div>
<body> 

问题:如何将视图中生成的数据传递给map.js文件?

非常感谢你的帮助!

4

2 回答 2

9

在您的模板{{ result }}中使用标签之间的<script></script>标签来发挥您的 JavaScript 魔力。

Ifresult是一个序列化的 JSON 对象,您可以使用它JSON.parse(result)来将 JSON 字符串转换为 JavaScript 对象。

例子:

<script type="text/javascript">
var data = JSON.parse("{{ result }}");
run_d3_stuff(data);
</script>
于 2013-06-27T00:03:37.113 回答
2

这里有一些潜在的解决方案。

正如 Alp 所说,首先是这样做:

<script>
    run_d3_stuff('{{results}}'); //Use whatever your function is here.
</script>

另一种解决方案是使用视图呈现您的脚本文件并将其包含在目标页面中。

编辑:

更清楚地说,第二种解决方案将涉及将模板更改为您的 JavaScript 文件,使用上面相同的技巧将变量的值设置为此。然后在您的页面中,您将执行以下操作:

<script src="my_view's_path"></script>
于 2013-06-27T00:28:50.997 回答