Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何访问不同函数中的字符串_Javascript - Fatal编程技术网

Javascript 如何访问不同函数中的字符串

Javascript 如何访问不同函数中的字符串,javascript,Javascript,我想在下面的代码中访问updateMarkerIcon函数中的entityString值。entityString具有以下属性,我希望从这些属性访问updateMarkerIcon函数中的状态值 身份证号码:3号楼 类型:计量器 地址:克什米尔 纬度:28.6674 经度:77.2282 房间数目:6间 国家:关键 状态:温度很高- function() { "use strict"; var icon; MashupPlatform.wiring.registerCallba

我想在下面的代码中访问updateMarkerIcon函数中的entityString值。entityString具有以下属性,我希望从这些属性访问updateMarkerIcon函数中的状态值

身份证号码:3号楼 类型:计量器 地址:克什米尔 纬度:28.6674 经度:77.2282 房间数目:6间 国家:关键 状态:温度很高-

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函数中调用吗?请上传更改并给我链接。我会帮助我的。