迭代对象列表

时间:2013-12-11 13:28:08

标签: javascript python django

我有一个包含其中对象的列表的列表,我需要迭代所有列表中的每个对象。这就是我所尝试过但却没有按照我打算的方式工作。

dict_values([[<mapvis.store.Node object at 0x14fd370>, <mapvis.store.Node object at 0x13c4270>], [<mapvis.store.Node object at 0x14fd930>, <mapvis.store.Node object at 0x14fd490>], ])

Js功能

function displayRoads(map) {
  {% for create_lat_lng in get_lat_lng %}
        {% for lat_lng in create_lat_lng %}
        var points = new google.maps.MVCArray();
        points.push(new google.maps.LatLng(lat_lng[0].lat, lat_lng[0].lng));
        points.push(new google.maps.LatLng(lat_lng[1].lat, lat_lng[1].lng));
        createPolyline(map, points);
  {% endfor %}
{% endfor %}
}

生成的Html。我希望它具有实际值而不是lat_lng [0] .lng

function displayRoads(map) {
    var points = new google.maps.MVCArray();
    points.push(new google.maps.LatLng(lat_lng[0].lat, lat_lng[0].lng));
    points.push(new google.maps.LatLng(lat_lng[1].lat, lat_lng[1].lng));
    createPolyline(map, points);
...
..
...
}

1 个答案:

答案 0 :(得分:2)

使用{{ variable }}语法。

function displayRoads(map) {
  {% for create_lat_lng in get_lat_lng %}
      {% for lat_lng in create_lat_lng %}
        var points = new google.maps.MVCArray();
        points.push(new google.maps.LatLng({{ lat_lng.0.lat }}, {{ lat_lng.0.lng }}));
        points.push(new google.maps.LatLng({{ lat_lng.1.lat }}, {{ lat_lng.1.lng }}));
        createPolyline(map, points);
      {% endfor %}
  {% endfor %}
}

为了澄清,{{ lat_lng.0.lat }}表示lat_lng变量上的访问索引为零,然后获取字典键lat的值。所以上面的代码假设lat_lng是一个包含字典的数组/元组。