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

私が見つけた最も簡潔な解決策はこれでした:

  • "images/$${}{サムネイル}.png"

完全を期すために、トニオが言及した投稿のものは次のとおりです。

  • "images/<%text>${thumbnail}.png"
  • "images/${"$"}{サムネイル}.png"
于 2012-12-04T12:02:01.113 に答える
0

私が覚えている限りでは、二重のドル記号を使用してエスケープできます。

"images/$${thumbnail}.png"

HTH、

編集: うーん、私が間違っていたようです。 https://groups.google.com/forum/#!topic/mako-discuss/g00Qq3_FNggを参照してください

于 2011-05-18T12:13:05.267 に答える