无法使用AngularJS(NgMap)动态切换语言



我正在使用ngmap(http://ngmap.github.io(版本1.18.4,角度版本1.4.9。

我想切换语言,但它没有生效。我看到了几个已经讨论过的问题,例如:

https://github.com/allenhwkim/angularjs-google-maps/issues/760

通过建议删除脚本标记,解决了上述问题。我没有加载谷歌地图的脚本标签。我有以下代码:

索引.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);

网页代码:

<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>

我在地图延迟加载参数中尝试了不同的组合,但没有任何效果。几个组合是:

$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">

有人可以告诉我解决方案吗?

一旦加载了谷歌地图,语言就无法更改。似乎ng-map库不支持在 API 发生更改时自动重新加载 API,因此自定义解决方案是重新渲染ng-map组件。

您可以使用ng-if销毁当前的ng-map并重新创建它。

相关内容

  • 没有找到相关文章

最新更新