2013-09-08 8 views
2

У меня возникли проблемы с пониманием того, как синтаксис цикла должен работать с webpy.Шаблоны шаблонов Webpy

У меня есть шаблон с участком кода, как это:

  $for point in slow_points: 
       L.marker(${point}, {icon: slowIcon}).addTo(map); 

      }); 

}); в конце концов, чтобы закрыть функцию Jquery. Следуя за отступом python, я бы ожидал, что }); не должен повторяться на моей выходной странице, но это так. Для того, чтобы получить });, чтобы не получить повторил я должен сделать это следующим образом:

  $for point in slow_points: 
       L.marker(${point}, {icon: slowIcon}).addTo(map); 

}); 

где мой }); все пути влево, насколько это может пойти, таким образом, в основном игнорируя любой тип отступа.

Является ли это ожидаемым поведением? И есть ли какой-нибудь другой синтаксис, который я могу использовать для цикла, который позволит мне сохранить мое отступление «чистым», но не вызывать код, который должен быть вне блока цикла for, чтобы повториться?

ответ

0

Давая ваш пример, он действительно не должен повторять });. Следующий код

import web 
template = """$def with(slow_points) 
    $for point in slow_points: 
     L.marker(${point}, {icon: slowIcon}).addTo(map); 
    }); 
""" 
page = web.template.Template(template) 
print page(['a', 'b', 'c']) 

Выходов это:

L.marker(a, {icon: slowIcon}).addTo(map); 
L.marker(b, {icon: slowIcon}).addTo(map); 
L.marker(c, {icon: slowIcon}).addTo(map); 
}); 

Пожалуйста, убедитесь, что у вас есть правильный стиль отступов, где 1 отступ равен 4 пробела.