mako和Openlayers之间的变量替换冲突

时间:2011-05-18 11:39:00

标签: templates openlayers mako

我在金字塔中使用mako模板,它使用$ {}构造进行变量替换。我还使用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";

另见The OpenLayers Styles Framework

我遇到的问题是mako将Openlayers $ {}变量解释为它自己的变量,我从服务器得到一个“NameError:Undefined”。我已经搜索了一段时间但找不到解决方案。

2 个答案:

答案 0 :(得分:2)

我发现最简洁的解决方案是:

  • “图像/ $$ {} {缩略图} .PNG”

为了完整起见,tonio提到的帖子中的内容是:

  • “图像/<%文本> $ {缩略图} .PNG”
  • “图像/ $ {” $ “} {缩略图} .PNG”

答案 1 :(得分:0)

据我记忆,您可以使用双美元符号来逃避它:

"images/$${thumbnail}.png"

HTH,

编辑:嗯,好像我错了,见https://groups.google.com/forum/#!topic/mako-discuss/g00Qq3_FNgg