【发布时间】:2017-02-05 23:04:59
【问题描述】:
Google 地图以 javascript 方式集成,我想在信息窗口中调用 angular2 函数,如下面的代码。看看infoContent 的按钮。
for (i = 0; i < locations.length; i++) {
let locLatLng = new google.maps.LatLng(locations[i].latitude, locations[i].longitude);
let infoContent = '<button (click)="myFunction(' + locations[i].id + ')">Details ...</button>';
marker = new google.maps.Marker({
position: locLatLng,
map: this.map
});
google.maps.event.addListener(marker, 'click', (function(marker, i) {
return function() {
infowindow.setContent(infoContent);
infowindow.open(this.map, marker);
};
})(marker, i));
}
不幸的是,角度点击事件(click)="myFunction()" 做不到。一定有别的办法。如果有人能指出我正确的方向,我会非常高兴。提前致谢。
【问题讨论】:
-
你的
addListener()有什么问题?如果this.map没有按预期工作,请参阅下面的答案。还有别的吗?一些错误信息,...? -
打开信息窗口工作正常。如果我将方式从
(click)更改为onclick我会得到一个Uncaught ReferenceError: myFunction is not defined,但 myFunction() 在一个角度组件内。 -
我猜你应该使用事件委托。你也可以看看这个问题stackoverflow.com/questions/6378007/…
标签: javascript google-maps-api-3 angular google-maps-markers