2013-04-03 51 views
1

我正在創建一個實現Bing地圖控件的網站。 我已經放置了圖釘,並且當用戶點擊一個圖釘時它們將顯示信息框。Bing地圖信息框的動態操作

我現在需要做的是向信息框添加動作。我可以使用action:選項靜態執行此操作。我想動態地做到這一點,因爲每個網站都可以有一組不同的動作,我想向用戶展示。

我已經建立了在其中有動作的字符串,不幸的是信息框想要一個對象而不是一個字符串,我不知道它想要哪個對象,也不知道如何將字符串轉換爲適當的對象。

任何幫助都將不勝感激。

謝謝!

回答

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}); 
+1

我實現了條件邏輯的做法,並制定出巨大。 你非常樂意幫忙。 – 2013-04-04 14:32:13

相關問題