我正在使用 NgMap 库在我的 Angular 应用程序中使用 google maps api。
我正在使用 ng-repeat 指令添加标记,每个指令都有一个单击标记,可调用控制器并记录到控制台。
<ng-map zoom="11" center="[40.74, -74.18]">
<marker ng-repeat="p in vm.positions"
position="{{p.pos}}"
on-click="vm.showData(p)" //this is my on-click event, passing through the ng-repeated object
title="pos: {{p.pos}}"></marker>
</ng-map>
出于某种原因,每次我将参数传递给我的控制器函数时,实际上传递的是标记对象,而不是我从视图传递的参数。
vm.showData = function (marker, param){
console.log(marker) //WHY IS MARKER BEING PASSED THROUGH?!
console.log(param.name); //THE SECOND ARGUMENT IS THE ONE I WANT, WHY ISN'T IT THE FIRST?
}
最终,在我的头撞到墙上之后,我决定检查是否有任何其他参数被传递给控制器函数。瞧,第二个论点是我一开始就希望通过的论点。
为什么第一个论点不是我所期待的?!它与 ngMap 库、角度有关,还是与我不知道的 JavaScript 细微差别有关?
可以在这里找到一个工作的 plunker:https ://embed.plnkr.co/TQpm4O/