Javascript 如何访问不同函数中的字符串
我想在下面的代码中访问updateMarkerIcon函数中的entityString值。entityString具有以下属性,我希望从这些属性访问updateMarkerIcon函数中的状态值 身份证号码:3号楼 类型:计量器 地址:克什米尔 纬度:28.6674 经度:77.2282 房间数目:6间 国家:关键 状态:温度很高-Javascript 如何访问不同函数中的字符串,javascript,Javascript,我想在下面的代码中访问updateMarkerIcon函数中的entityString值。entityString具有以下属性,我希望从这些属性访问updateMarkerIcon函数中的状态值 身份证号码:3号楼 类型:计量器 地址:克什米尔 纬度:28.6674 经度:77.2282 房间数目:6间 国家:关键 状态:温度很高- function() { "use strict"; var icon; MashupPlatform.wiring.registerCallba
function() {
"use strict";
var icon;
MashupPlatform.wiring.registerCallback("entityInput", function(entityString) {
var entity = JSON.parse(entityString);
var coordinates = null;
var coord_parts = null;
var coordinates_pref = MashupPlatform.prefs.get('coordinates_attr');
var attributes = coordinates_pref.split(new RegExp(',\\s*'));
if (attributes.length < 1) {
return;
} else if (attributes.length >= 2 && entity[attributes[0]] != null && entity[attributes[1]] != null) {
coord_parts = [
entity[attributes[0]],
entity[attributes[1]]
];
} else if (entity[attributes[0]]) {
coord_parts = entity[attributes[0]].split(new RegExp(',\\s*'));
}
if (coord_parts != null && coord_parts.length === 2) {
coordinates = {
system: "WGS84",
lat: parseFloat(coord_parts[0]),
lng: parseFloat(coord_parts[1])
};
}
if (coordinates) {
MashupPlatform.wiring.pushEvent("poiOutput", JSON.stringify(entity2poi(entity, coordinates)));
}
});
var entity2poi = function entity2poi(entity, coordinates) {
var poi = {
id: entity.id,
icon: icon,
tooltip: entity.id,
data: entity,
infoWindow: buildInfoWindow.call(this, entity),
currentLocation: coordinates
};
return poi;
};
var internalUrl = function internalUrl(data) {
var url = document.createElement("a");
url.setAttribute('href', data);
return url.href;
};
var buildInfoWindow = function buildInfoWindow(entity) {
var infoWindow = "<div>";
for (var attr in entity) {
infoWindow += '<span style="font-size:12px;"><b>' + attr + ": </b> " + entity[attr] + "</span><br />";
}
infoWindow += "</div>";
return infoWindow;
};
var updateMarkerIcon = function updateMarkerIcon() {
icon = MashupPlatform.prefs.get('marker-icon');
if (icon == '') {
icon = internalUrl('images/icon.png');
}
};
MashupPlatform.prefs.registerCallback(updateMarkerIcon);
// Init initial marker icon
updateMarkerIcon();
}
在寄存器回调中调用updateMarkerIcon并将entityString作为变量传递给它。您必须更改updateMarkerIcon函数以接受参数,例如var updateMarkerIcon=函数updateMarkerIcon,然后在.registerCallback回调函数中调用该函数,将entityString传递给它,例如UpdateMarkerconeTityString我看到了确定空白图标的条件,但除此之外,你想得到什么?你会在其他地方发送一个图标值吗?如果是的话,也包括那个代码。我有3个不同的图标,像icon1、icon2和icon3。所以我想打印icon1表示状态关键,icon2表示状态正常,icon3表示状态高。我没有时间回答你的代码,但如果你看看我的项目,你可能会发现一些灵感,可以找到一个使用开关的简单解决方案。查看第69-98行,我发现一个错误:未捕获引用错误:执行此操作时未定义entityString:MashupPlatform.prefs.RegisterCallBackUpdateMarkericOnTityString;在var entity=JSON.parseentityString之后的行上的registerCallback中调用它;您可能希望使用解析后的值调用它,并将UpdateMarkercon定义移到RegisterCallback上方。您可以在scribd.com/document/389697137/new-18上找到我更改的代码。你能用Scribd上传一个链接吗?在那里你可以更改代码并给我链接?所以我知道你想说什么了?提前谢谢你可以在找到我修改过的代码。你能告诉我如何在.RegisterCallback函数中调用吗?请上传更改并给我链接。我会帮助我的。