在javascript调用函数参数中使用角度

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

我想在我的页面中显示每个地方的谷歌地图(lieux)。在我的HTML页面中,我有谷歌地图的功能

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