1

所以我正在使用谷歌地图 api,图书馆为我提供了这个事件:

google.maps.event.addListener(map, 'zoom_changed', function() {

如果我只是将它放在我的 JS 文件中,这可以工作,但是如何在带有 Backbone.js 的视图中转换?我如何使用框架实现这一点?我在初始化函数中尝试了 .on ,但它似乎不起作用

4

1 回答 1

1

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
    }
};
于 2013-11-01T21:45:59.780 回答