2016-04-28 147 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