在javascript调用函数参数中使用角度
我想在我的页面中显示每个地方的谷歌地图(lieux)。在我的HTML页面中,我有谷歌地图的功能在javascript调用函数参数中使用角度,javascript,angularjs,Javascript,Angularjs,我想在我的页面中显示每个地方的谷歌地图(lieux)。在我的HTML页面中,我有谷歌地图的功能 <script> function initialize(long,lat) { var mapCanvas = document.getElementById('map_canvas'); var mapOptions = { center: new google.maps.LatLng(long, lat), zoom: 8,
<script>
function initialize(long,lat) {
var mapCanvas = document.getElementById('map_canvas');
var mapOptions = {
center: new google.maps.LatLng(long, lat),
zoom: 8,
mapTypeId: google.maps.MapTypeId.ROADMAP
}
var map = new google.maps.Map(mapCanvas, mapOptions)
}
google.maps.event.addDomListener(window, 'load', initialize);
document.getElementById('map_canvas').style.display='block';
</script>
函数初始化(长,横向){
var mapCanvas=document.getElementById('map_canvas');
变量映射选项={
中心:新的google.maps.LatLng(long,lat),
缩放:8,
mapTypeId:google.maps.mapTypeId.ROADMAP
}
var map=new google.maps.map(mapCanvas,mapOptions)
}
google.maps.event.addDomListener(窗口“加载”,初始化);
document.getElementById('map_canvas').style.display='block';
我有显示地图的按钮
<div class="tab-pane" id="tab_b" ng-controller="LieuController as lieu">
<div class="list-group-item" ng-repeat="lieu in lieu.lieux ">
<button onclick="initialize({{lieu.x}},{{lieu.y}})">Click me</button>
<div id="map_canvas"></div>
</div>
点击我
那么,是否可以像我那样使用参数调用函数,或者是否有其他方法?您的代码存在几个问题。从技术上讲,可以像您正在尝试的那样混合角度和纯javascript dom0事件。然而 1。如果您已经尝试了自己的代码,那么您应该已经看到了本例中的错误: 不允许对HTML DOM事件属性进行插值 这有效地防止使用角度范围数据和角度外世界代码。尽管你可以采取一些变通办法。可以在某些属性中呈现必要的数据,然后使用它们。例如:
<button onclick="initialize(this.getAttribute('data-x'), this.getAttribute('data-y'))"
data-x="{{l.x}}" data-y="{{l.y}}">Click me</button>
3。也就是说,你不应该用这样一个不成功的设计来构建一个应用程序。你应该真正理解AngularJS的主要概念和哲学
在您的情况下,您可能应该使用
ng click
而不是onclick
,在某种自定义服务中定义initialize
,或者编写自定义指令以在适当的容器中处理每个单独的地图渲染。您可以将内部liue
var名称更改为其他名称吗。它可能与控制器冲突,因为liue
为什么不为地图创建一个指令呢?
google.maps.event.addDomListener(window, 'load', initialize);