我使用javascript映射库制作网络地图。
我有按钮可以打开/关闭不同的图层和底图。按下按钮时,会将唯一的buttonId
传递给此功能。从那里开始,我想引用一个json字典,它可以为相关的buttonId
提取图层和底图,并在地图上显示这些信息。
在下面的示例代码中,obj.name.buttonId.show
存在问题,而obj.name.button1.show
会返回有效值。我该如何解决这个问题?换句话说,如何在方法中传递变量buttonId
以检索其参数?
代码:
function(arg) {
var json = '{"name":{"button1": {"show": "streets", "basemap": "dark-gray"}, "button2": {"show": "railroads", "basemap": "terrain"}, "button3": {"show": "rivers", "basemap": "terrain"} }}';
var obj = dojo.fromJson(json);
buttonId = arg.target.id
if (obj.name == buttonId){
this.map.getLayer(obj.name.buttonId.show).show()
this.map.setBasemap(obj.name.buttonId.basemap)
else
pass
};
我试图避免为每个按钮编写if / then语句,因此我采用这种方法。