1

我正在创建一个实现 Bing 地图控件的站点。我已经放置了图钉,当用户单击图钉时它们会显示信息框。

我现在需要做的是向信息框添加操作。我可以使用 action: 选项静态地做到这一点。我想动态地做到这一点,因为每个站点都可以有一组不同的我想呈现给用户的操作。

我已经构建了其中包含操作的字符串,不幸的是信息框想要一个对象,而不是字符串,而且我不知道它想要哪个对象,也不知道如何将字符串变成正确的对象。

任何帮助将不胜感激。

谢谢!

4

1 回答 1

1

虽然您没有“setActions”,但您可以使用 Infobox 上的“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});
于 2013-04-04T07:56:14.950 回答