我正在尝试在Django模板中分配一些JavaScript变量。
我将分配的值正确写入页面时遇到问题(我可以在页面源代码中看到它们),但仍然显示为null
。
我正在这样做:
<script type="text/javascript">
var coords = [];
{% for i in item_list %}
coords.push([ {{i.x}}, {{i.y}} ]);
{% endfor %}
</script>
这是产生的页面源:
coords.push([ -320.435118373, -149.333637576 ]);
coords.push([ -120.41321373 , -329.312376 ]);
...
这似乎是完全有效的javascript,但是,使用Firebug查看
coords
的值是这样产生的:[[null, null], [null, null], [null, null]...[null, null]]
因此很明显,每个
push()
调用均正确进行,并且每次都添加一个新的大小为2的数组。但是,由于某些原因,数字文字都将求值为null
。有谁知道我如何才能正确使用这些值?
更新:在我将它们传递给jQuery flot插件之前,数组中的值似乎是正确的:
$.plot($('#mapWrapper'), coords, options);
所以我想这毕竟与我使用Django模板的方式没有任何关系。我仍然对
$.plot
的问题感到好奇。 最佳答案
好像我错过了一件小事。我正在使用一个数据系列,它是一个数组数组。实际上,jquery flot插件期望一个系列数组,即数组数组,因此我需要一个三层嵌套的数组。
从此更改:
$.plot($('#mapWrapper'), coords, options);
对此:
$.plot($('#mapWrapper'), [coords], options);
解决了问题。
感谢所有看过这个的人。