3

我在金字塔中使用 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";

另请参阅OpenLayers 样式框架

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

4

2 回答 2

4

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

  • “图像/$${}{thumbnail}.png”

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

  • "图像/<%text>${thumbnail}.png"
  • "图片/${"$"}{thumbnail}.png"
于 2012-12-04T12:02:01.113 回答
0

据我记得,您可以使用双美元符号来转义它:

"images/$${thumbnail}.png"

高温下,

编辑:嗯,看来我错了,请参阅https://groups.google.com/forum/#!topic/mako-discuss/g00Qq3_FNgg

于 2011-05-18T12:13:05.267 回答