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ます。

これらの値を適切に使用する方法を知っている人はいますか?

更新:配列の値は、j​​Query flotプラグインに渡すまでは問題ないようです:

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

ですから、これは私がDjangoテンプレートを使用している方法とは何の関係もないと思います。それでも、私は問題が何であるかについて興味があり$.plotます。

4

3 に答える 3

3

私は小さなことを1つ見逃していたようです。配列の配列であるデータ系列を使用していました。実際、jquery flot プラグインは、配列の配列であるシリーズの配列を想定しているため、3 重にネストされた配列が必要でした。

これから変更:

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

これに:

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

問題を修正しました。

これを見たすべての人に感謝します。

于 2009-02-15T23:31:52.793 に答える
0

テストアプリでこれを試してみましたが、正常に動作します(item_listは、「x」要素と「y」要素としてフロートを持つ辞書のリストです)。ここに表示されていない他の何かを実行している必要があります。

多分それは奇妙なエンコーディングの問題なのだろうか、おそらくあなたはそれを知らずに奇妙なユニコード文字を使用していますか?

于 2009-02-15T22:48:02.413 に答える
0

プロットとは正確には何をするためのものですか?何らかの形で座標を操作する必要があるように聞こえますが、その場合、ポイントの配列の配列を渡すのは正しいですか?

次のようなハッシュまたは Coords オブジェクトの配列を取ることを期待していました。

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

ちょっとした考え。

于 2009-02-15T23:12:11.687 に答える