我研究并尝试了一切以找到解决方案。我不得不承认我不是coffeescript的专家。也许这是一个明显的错误,但我不知道如果有人能提供帮助我会很高兴。
我在谷歌地图上创建了标记。使用click applisteners,可以打开属于标记的特定htmls。现在我还需要一个infowindow用于每个标记,它应该在鼠标悬停时观察并在离开时关闭。 我不知道它为什么不起作用。我尝试了其他解决方案,这些解决方案主要在javascript中工作但在coffeescript中不适用于我。这是代码:
### define
lodash : _
backbone : Backbone
marionette : Marionette
app : app
parse : Parse
###
class MapView extends Marionette.View
DEFAULT_CENTER : [0, 0]
DEFAULT_ZOOM : 10
className : "map-view"
render : ->
mapOptions =
zoom: @DEFAULT_ZOOM
streetViewControl: false
panControl: false
center: new google.maps.LatLng(@DEFAULT_CENTER...)
mapTypeId: google.maps.MapTypeId.ROADMAP
@map = new google.maps.Map(@el, mapOptions)
@infowindow = new google.maps.InfoWindow()
#[........................]
makeJobMarker : (job) ->
marker = new google.maps.Marker({
map : @map
position : {
lat : job.get("location").latitude,
lng : job.get("location").longitude
}
icon : "/images/marker/#{job.get("jobCategory")}.png"
animation : google.maps.Animation.DROP
zIndex : google.maps.Marker.MAX_ZINDEX + 1
optimized : false
})
marker.addListener("mouseover", =>
infowindow.setContent("Hello")
infowindow.open(map,marker)
)
marker.addListener("click", =>
app.router.navigate("/job/#{job.id}", trigger : true)
app.vent.trigger("view:searchItem")
)
marker.jobId = job.id
return marker
#[.......................]
答案 0 :(得分:0)
您错过了@
密钥(javascript中等效的this
)来访问私人会员@map
和@infowindow
:
marker.addListener("mouseover", =>
@infowindow.setContent("Hello")
@infowindow.open(@map,marker)
)