我正在尝试将Angularjs-Google-Maps与ui-router结合使用。我得到一个奇怪的问题,地图只是部分出现。
我设法通过创建一个触发'resize'事件来重新绘制地图的指令来解决它:
function autoRefresh() {
return {
restrict: 'A',
link: function(scope, element, attrs) {
scope.$on('$stateChangeSuccess', function(){
google.maps.event.trigger(scope.map, 'resize');
console.log("this works!");
});
}
}
}
<map center="-34.397, 150.644" zoom="8" auto-refresh></map>
这很好用,一旦初始页面加载并且我改变了状态,就会出现地图。但是,如果我只是在浏览器中重新加载页面,则不会显示地图。我必须在地图可见之前改变状态。
是否有'$ stateChangeSuccess'可以替代初始页面加载?
感谢任何帮助。提前谢谢!