我正在创建一个实现Bing地图控件的网站。 我放置了图钉,当用户点击图钉时,它们会显示信息框。
我现在需要做的是向信息框添加动作。我可以使用action:选项静态地执行此操作。我想动态地这样做,因为每个站点都可以有一组我想要呈现给用户的不同动作。
我已经构建了包含动作的字符串,不幸的是,信息框需要一个对象,而不是字符串,我不知道它想要哪个对象,也不知道如何将字符串转换为正确的对象。
任何帮助都将不胜感激。
谢谢!
答案 0 :(得分:1)
虽然您没有“setActions”,但您可以在信息框上使用“setOptions”。
infobox.setOptions(infoboxOptions);
参考:http://msdn.microsoft.com/en-us/library/gg675208.aspx
选项本身可以像这样创建,只需要操作:
var infoboxOptions = {
actions:[
{label: 'test1', eventHandler: testEvent1},
{label: 'test2', eventHandler: testEvent2}]};
参考:http://msdn.microsoft.com/en-us/library/gg675210.aspx
您可以随时调用此方法,从而为信息框添加更多操作。
现在,你提到你有一个字符串?我猜你在谈论“infoboxOptions”等的JSON表示。你可以使用像
这样的东西jQuery.parseJSON(jsonString); //if using jQuery
您也可以通过编程方式执行此操作,因此可能使用一些条件逻辑:
var myActions = [];
if(A) {
myActions.push( {label: 'test1', eventHandler: testEvent1});
}
if(B) {
myActions.push( {label: 'test2', eventHandler: testEvent2});
}
if(C) {
myActions.push( {label: 'test3', eventHandler: testEvent3});
}
infobox.setOptions({ actions: myActions});