我发现,如果我离开我的状态缓存设置为true我的谷歌地图工作,但如果我将其设置为false然后地图变灰,我无法得到它回来。在离开cache:false
时,我该如何解决这个问题?
.state('tabs.map', {
url: "/map",
cache:false, // change to true and it works again
views: {
'map-tab': {
templateUrl: "templates/map.html",
controller: "MapCtrl"
}
}
});
这可能是因为当视图没有缓存时,它需要一段时间来渲染和整个视图,控制器在视图完全在DOM中渲染之前被实例化。所以元素选择可能没有正确进行。但是,如果您等到下一个摘要周期(例如:使用超时),问题似乎已经解决了。
$timeout(function(){
var map = new google.maps.Map(document.getElementById("map"),
mapOptions);
$scope.map = map;
});