我正在使用angularjs
,并希望检查参数lang=XX
的网址。
如果找到,我的js调用应该将语言参数替换为url中的语言参数:
<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?language=en"></script>
这可能吗?
答案 0 :(得分:1)
这不是&#34; Angular&#34;方式,但允许您向页面添加脚本:
options3d: {
enabled: true,
alpha: 15,
beta: 15,
depth: 50,
viewDistance: 25
}
答案 1 :(得分:1)
有一个&#39; Angular&#39;但是,我不确定它对简单的Javascript解决方案有多大用处。无论如何,您可以使用$location
服务来搜索当前网址。假设您有[{1}}作为参数,则可以使用lang
返回$location.search().lang
的值(如果存在)。
然后,您将创建一个服务或工厂,以使用language参数异步加载Google Maps。您还需要提供回调方法。那个回调方法将是一个承诺。这是样品工厂:
lang
这可以作为工厂使用,因为它可以从应用程序移植到应用程序。但是,在单个应用程序中,它有用一次,因为您不会多次调用它。
然后,在你的控制器中:
app.factory('GMapsFactory', function($q, $window) {
var _base = 'https://maps.googleapis.com/maps/api/js?language=';
return {
loadLocale: function(loc) {
var _defer = $q.defer();
var _tag = document.createElement('script');
_tag.src = _base + loc + '&callback=gmLocaleCallback';
$window.gmLocaleCallback = _defer.resolve;
document.body.appendChild(_tag);
return _defer.promise;
}
};
});
除非你有理由需要使用Angular,否则简单的方法将是你索引中的普通javascript:
app.controller('MainCtrl', function($scope, $location, GMapsFactory) {
var lang = $location.search().lang || 'en';
GMapsFactory.loadLocale(lang).then(function() {
console.log(google.maps);
});
});