所以我正在使用谷歌地图 api,图书馆为我提供了这个事件:
google.maps.event.addListener(map, 'zoom_changed', function() {
如果我只是将它放在我的 JS 文件中,这可以工作,但是如何在带有 Backbone.js 的视图中转换?我如何使用框架实现这一点?我在初始化函数中尝试了 .on ,但它似乎不起作用
所以我正在使用谷歌地图 api,图书馆为我提供了这个事件:
google.maps.event.addListener(map, 'zoom_changed', function() {
如果我只是将它放在我的 JS 文件中,这可以工作,但是如何在带有 Backbone.js 的视图中转换?我如何使用框架实现这一点?我在初始化函数中尝试了 .on ,但它似乎不起作用
Google 地图 api 事件不是 DOM 事件,因此您不会在视图中以相同的方式连接它们。我只是将我的 google addListener 调用放在任何相关视图的初始化函数中,并从您提供给 addListener 调用的回调函数中调用任何其他方法(请务必先保存对此的引用,以便您可以正确调用任何其他方法查看那里的方法。)
例子:
var MapView = Backbone.View.extend({
initialize: function () {
var self = this;
// assuming that map variable is defined here, otherwise pass in a reference to it through view options
map = new google.maps.Map(blah blah blah);
google.maps.event.addListener(map, 'zoom_changed', function () {
self.handleZoomChanged();
});
},
handleZoomChanged: function () {
// do whatever here
}
};