我不理解js" $ {method_name}"的一些语法。

时间:2014-12-26 06:39:53

标签: javascript jquery openlayers

以下是我不了解一些语法的代码,例如${method_name}我们通过将方法名称传递给花括号来做什么。

  global._jsname.prototype.createEELayer = function (ftRule) {
  if (this.EELayer) { return; }
  var that = this;
  var myStyle = new OpenLayers.Style ({
  externalGraphic : 'images/man.png',
  graphicOpacity : "${opac}",
  cursor : "pointer",
  graphicWidth : "20px",
  label:"${labelNumber}",
  graphicHeight : "20px",
  graphicYOffset : -9,
  graphicXOffset : -12,
  graphicTitle: "Drag me to move along the route"
 },
{ context :{ 
opac : function (feature) { 
  if (feature.editOpacity) {
    return feature.editOpacity;
  } else {
    return "1.0";
  }
}
,labelNumber : function (feature) {
  var labelNo = feature.data.stopN;
  return labelNo;
}
} 
});

this.EELayer = new OpenLayers.Layer.Vector("EELayer",{ 
styleMap: new OpenLayers.StyleMap({
  "default" : myStyle,
  "onSelect":myStyle
}), 
isBaseLayer : false
});
this.mbox.map.addLayer(this.EELayer);
}

我没有得到的另一件事是为什么在${labelNumber}中给出了方法名称(labelNumbber)。

3 个答案:

答案 0 :(得分:0)

表达式

....
label:"${labelNumber}",

....

正在定义名为label的属性,该属性已分配 string 。那么,这个字符串中“$ {labelNumber}”一词的含义是由程序进一步的逻辑决定的。

实际上,在这几行中,它没有任何功能,因为它只是一个文字而且这里没有使用该属性。

答案 1 :(得分:-1)

这是将dinamic变量从 PHP 传递到html / js {$method_name}的通用方法。
因此,这些变量/名称可能来自代码的其他部分,它们将curent文件重用为模板。

答案 2 :(得分:-1)

也许是春天的MVC语言 我经常使用它

http://www.mkyong.com/spring-mvc/spring-mvc-hello-world-example/

见过4号,它也可以在js中使用