-2

私はこれをかなり長い間機能させようとしてきました:

{% for record in records %}

var GPSlocation = "(37.7699298, -93.4469157)";
var LatLng = GPSlocation.replace("(", "").replace(")", "").split(", ")
var Lat = parseFloat(LatLng[0]);
var Lng = parseFloat(LatLng[1]);

var markerLatlng = new google.maps.LatLng(Lat, Lng);

var marker = new google.maps.Marker({
    position: record.GPSlocation,
    title: record.title
});

//add the marker to the map
marker.setMap(map);

{% endfor %}

そこに変数をハードコードするとうまくいきますが、それ以外の場合は何もしません。それらをhtmlに出力すると、必要なすべてのデータがレコード変数に含まれますが、JavaScriptで使用しようとすると機能しません。何か案は?

したがって、JSON エンコーディング フィルターを Jinja2 システムに配置する必要があり、次のようになると推測しています。

jinja_env = jinja2.Environment(loader = jinja2.FileSystemLoader(template_dir),
                           jinja_env.filters['json_encode'] = json.dumps,
                           autoescape = True)
4

1 に答える 1

3

はい、そうではありません。代わりに、次のようなことができます。

{% for record in records %}
addRecord({
    title: {{ title|json_encode }}, // assuming you have json_encode set up as a filter
    position: {
        latitude: {{ record.position.latitude|json_encode }},
        longitude: {{ record.position.longitude|json_encode }}
    }
});
{% endfor %}
于 2012-09-10T01:08:09.263 に答える