-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 中使用它时它就不起作用了。有任何想法吗?

所以我需要在 Jinja2 系统上放置一个 JSON 编码过滤器,我猜它看起来像这样:

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 回答