我目前使用谷歌地图API,我遇到了一个问题,我无法解决如何解决问题。 我对Javascript的体验非常有限,所以答案可能很简单。
我的代码目前非常接近 radar search google example 。
我遇到问题的部分代码是:
function performSearch() {
var request = {
bounds: map.getBounds(),
keyword: 'best view'
};
service.radarSearch(request, callback);
}
function callback(results, status) {
if (status != google.maps.places.PlacesServiceStatus.OK) {
alert(status);
return;
}
for (var i = 0, result; result = results[i]; i++) {
createMarker(result);
}
}
我稍微修改了代码,以便 performSearch 有一个输入参数。 我想回调也知道这个参数。
所以我想要实现的是:
function performSearch(aParameter) {
var request = {
bounds: map.getBounds(),
keyword: 'best view'
};
service.radarSearch(request, callback(aParameter));
}
function callback(results, status, aParameter) {
console.log("callback knows about : " + aParameter);
if (status != google.maps.places.PlacesServiceStatus.OK) {
alert(status);
return;
}
for (var i = 0, result; result = results[i]; i++) {
createMarker(result);
}
}
我尝试了很多方法将 aParameter 插入回调中,但到目前为止我的所有尝试都失败了。
那么在不使用全局变量的情况下为回调提供额外参数的方法是什么?
更多信息:
感谢您的帮助!
答案 0 :(得分:0)
好的,问题确实是我的Javascript缺乏经验:)。
我发现this related question解决了这个问题。
这个想法是做这样的事情:
function performSearch(aParameter) {
var request = {
bounds: map.getBounds(),
keyword: 'best view'
};
service.radarSearch(request, function(results, status){
resultCallback(results, status, aParameter);
});
}