5

我正在尝试在 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

4

3 回答 3

3

看起来我错过了一件小事。我正在使用一个数据系列,它是一个数组数组。实际上,jquery flot 插件需要一个系列数组,它们是数组的数组,所以我需要一个三重嵌套数组。

从此改变:

$.plot($('#mapWrapper'), coords, options);

对此:

$.plot($('#mapWrapper'), [coords], options);

解决了这个问题。

感谢所有看过这个的人。

于 2009-02-15T23:31:52.793 回答
0

我已经在一个测试应用程序中尝试过了,它工作正常(item_list 是一个带有浮点数作为“x”和“y”元素的字典列表)。一定有其他你正在做的事情,你没有在这里展示。

我想知道这是否是一个奇怪的编码问题,也许你在没有意识到的情况下使用了奇怪的 unicode 字符?

于 2009-02-15T22:48:02.413 回答
0

plot到底是什么意思?听起来好像它应该以某种方式与坐标一起工作,在这种情况下为点传递数组数组是否正确?

我原以为会采用一组哈希或 Coords 对象,例如:

coords.push({ "x":-320.435118373, "y":-149.333637576 });
coords.push({ "y":-120.41321373, "y":-329.312376 });

只是一个想法。

于 2009-02-15T23:12:11.687 回答