2016-09-13 4 views
1

を使用してテンプレートでJSONをパース:var technicCategories = '{{ technicCategories|escapejs }}';を、それが配列であると私は試したし、それが与えるので: technicCategoriesは、だから私はこのような何かを作ることができないjson_serializer.serialize の配列です私のエラー: "JSON Parse error: Unexpected identifier "u""、私の配列は次のようになります:var technicCategories = '[u\u0027[{\u0022model\u0022: \u0022automarket.technicandallf...ジャンゴ:私は、配列内のパラメータを渡す私のテンプレートではJavascript配列

for (var i = 0; i < {{ index }}; i++){ 
      var technicCategories = '{{ technicCategories.i|escapejs }}'; 
      technicCategories = JSON.parse(technicCategories); 
      console.log(technicCategories); 
    } 

が、問題がある:だから私はこれを行うことを決めた SyntaxError: JSON Parse error: Unexpected EOFが。しかし、私がこれを作れば、 var technicCategories = '{{ technicCategories.0|escapejs }}';はすべてうまく動作しますが、私にはインデックス0のオブジェクトだけが与えられます。

答えて

0

まあ、解決策は見つかりませんでした。だから私はこれをするために私の方法を思い出させることにした

0

technicCategoriesには何がありますか?そしてなぜあなたは内部変数をリストからの最初の値だけに入れようとしていますか?

は、それはトリックを行う必要があり、かつtechnicCategories変数に、あなたの要素の配列があるでしょう。このvar technicCategories = '{{ technicCategories|safe }}';

を試してみてください。

0

リストの要素だけでなく、データ全体をシリアル化する必要があります。したがって、シリアライズするすべての要素を含むリストを作成し、リストをシリアライズします。

何らかの理由でこれが不可能な場合は、テンプレート内のリストを反復処理できます。

var technicCategories = '[{% for element in technicCategories %}{{element|safe}}{% if not forloop.last %},{% endif %}{% endfor %}]'; 

しかし、私は本当に最初のアプローチをお勧めします。

関連する問題