конфликт переменных замещения между мако и Openlayers - PullRequest
3 голосов
/ 18 мая 2011

Я использую шаблоны мако в пирамиде, которая использует конструкцию $ {} для подстановки переменных.Я также использую скрипт Openlayers, чтобы показать карту с объектами.Я хочу стилизовать свои функции с помощью Stylemap следующим образом:

var symbolizer = OpenLayers.Util.applyDefaults(
    {externalGraphic: "images/${thumbnail}.png", pointRadius: 20},
    OpenLayers.Feature.Vector.style["default"]);
var styleMap = new OpenLayers.StyleMap({"default": symbolizer, "select": {pointRadius: 30}});
var vectorLayer = new OpenLayers.Layer.Vector("thumbs", {styleMap: styleMap});
...
vectorLayer.features[0].attributes.thumbnail="sight";
vectorLayer.features[1].attributes.thumbnail="bar";

См. Также Каркас стилей OpenLayers .

У меня проблема в том, что mako интерпретирует Openlayers{} переменная как ее собственная переменная, и я получаю «NameError: Undefined» с сервера.Я искал некоторое время, но не смог найти решение.

Ответы [ 2 ]

3 голосов
/ 04 декабря 2012

Самым кратким решением, которое я нашел, было следующее:

  • "images / $$ {} {thumbnail} .png"

Для полноты, те, что всообщение, упомянутое tonio:

  • "images / <% text> $ {thumbnail} .png"
  • "images / $ {" $ "} {thumbnail} .png"
0 голосов
/ 18 мая 2011

Насколько я помню, вы можете использовать двойной знак доллара, чтобы избежать его:

"images/$${thumbnail}.png"

НТН,

РЕДАКТИРОВАТЬ: Да, кажется, я был неправ, см. https://groups.google.com/forum/#!topic/mako-discuss/g00Qq3_FNgg

...