我正在使用ngmap(http://ngmap.github.io)版本1.18.4,角度版本1.4.9。
我想切换语言,但是没有生效。我看到了几个已经讨论过的问题,例如:
https://github.com/allenhwkim/angularjs-google-maps/issues/760
以上问题已通过建议删除脚本标签而解决。我没有加载Google地图的脚本标签。我有以下代码:
index.html:
<script src='bower_components/ngmap/build/scripts/ng-map.js'></script>
控制器代码:
$scope.markers = [$scope.latitude, $scope.longitude];
$scope.mapParams = 'https://maps.google.com/maps/api/js?language=' + $scope.locale;
$timeout(function() {
NgMap.getMap({id: 'site-map'}).then(function(map) {
google.maps.event.trigger(map, 'resize');
map.setCenter(new google.maps.LatLng($scope.latitude, $scope.longitude));
});
}, 2000);
HTML代码:
<div map-lazy-load="https://maps.google.com/maps/api/js?key=abc&v=3.34" map-lazy-load-params="{{ mapParams }}">
<ng-map id="site-map" center="{{[ latitude, longitude ]}}" zoom="question.zoom"
>
<marker position="{{ markers }}"></marker>
</ng-map>
</div>
我在map-lazy-load-params中尝试了不同的组合,但是没有任何效果。很少有以下组合:
$scope.mapParams = '&language=' + $scope.locale;
$scope.mapParams = 'https://maps.googleapis.com/maps/api/js&language=' + $scope.locale;
静态语言可以很好地工作,就像我这样做来验证地图语言是否更改一样。
<div map-lazy-load="https://maps.google.com/maps/api/js?key=abc&v=3.34&language=ja">
有人可以告诉我解决方案吗?
答案 0 :(得分:0)
一旦加载了Google地图,就无法更改语言。似乎ng-map
库如果更改会不支持API的自动重载,因此自定义解决方案是重新呈现ng-map
组件。
您可以使用ng-if
销毁当前的ng-map并重新创建它。