我正试图抓住谷歌地图InfoWindow中的点击按钮事件。为此,我有以下
<!-- Html file -->
<template name="infoWindowContent">
<button>Click Me!</button>
</template>
然后我在client.js
上有这个//Client js file
//Function that renders the template. Gets called from a user's action
function showInfoWindow(map, marker) {
var infoWindow = new google.maps.InfoWindow();
//This is the line that generates the template's html
var infoWindowHtmlContent = Template.infoWindowContent();
infoWindow.setContent(infoWindowHtmlContent);
infoWindow.open(map, marker);
}
//Template events
Template.infoWindowContent.events = {
'click button': function(event){
console.log('event was triggered', event);
}
}
infoWindow显示在地图上,它包含按钮,但是当单击按钮时,控制台中不会显示任何日志。这有什么线索吗?如何捕获由使用Template.myTemplate()生成的某个元素调度的事件?
答案 0 :(得分:0)
函数Template.template()
返回普通的html字符串。它没有启用任何Meteor属性。你需要的是一个注入了适当行为的DOM元素。
...
var node = Meteor.render(Template.infoWindowContent());
outerElement.appendChild(node);
...
我不确定如何在谷歌地图api中使用DOM节点,但如果可能的话,它应该很容易。
另外,使用正确的事件表格,从长远来看可以省去很多麻烦:
Template.infoWindowContent.events({
...
});