2016-04-28 111 views
1

Javascript代碼我有一個頁面,顯示在地圖(ShowMap.html)與此抽出代碼:與GMAP和離子框架

<div id="map" data-tap-disabled="true"></div> 

在控制器我用這樣的:

... 
var map = new google.maps.Map(document.getElementById("map"), mapOptions); 
... 

和地圖顯示正常。

在這個頁面我有一個按鈕,其中一個ng-click激活該 去到另一個視圖的代碼這樣的功能:

$state.go("Details", 
      { 
      searchTerm: term 
      }); 

然後從Details.html我有另一個ng-click另一個按鈕,並來到了另一個函數回到ShowMap.html

$state.go("ShowMap", 
      { 
      data: d 
      }); 

此時地圖不再顯示。

它好像消失了。實際上在地圖div內沒有任何東西被渲染。

爲什麼?看起來像從$state狀態變化導致一些問題映射...

回答

1

過渡到一個新的狀態的便捷方法。 $state.go在內部調用$state.transitionTo,但自動將選項設置爲{ location: true, inherit: true, relative: $state.$current, notify: true }。這允許您輕鬆使用絕對路徑或相對路徑,並僅指定要更新的參數(同時讓未指定的參數從當前活動的祖先狀態繼承)。

將發送到該狀態的參數的映射將填充$stateParams.
未指定的任何參數將從當前定義的參數繼承。只有狀態定義中指定的參數才能被覆蓋,新的參數將被忽略。例如,這允許轉到共享在父狀態中指定的參數的兄弟狀態。參數繼承僅適用於共同的祖先狀態,即,轉換到兄弟將讓你對所有父母的參數,轉換到孩子會得到你當前所有的參數等
所以你需要通過選擇這樣

$state.go("ShowMap", 
      { 
      data: d 
      }, 
      {inherit:false,relative:$state}); 
+0

是的,我能理解。然而這並不能解決我的問題。我不明白爲什麼當我通過$ state.go(...) – xdevel2000

+1

@ xdevel2000傳遞到一個狀態(一個html頁面)到另一個頁面(一個html頁面)時,gmap的地圖不再呈現。 '''''''''''''''''''''div'在html的第一次渲染中被替換,只需檢查一次... – Ankanna