Javascript 在谷歌地图的回调函数中添加多个标记

Javascript 在谷歌地图的回调函数中添加多个标记,javascript,google-maps,backbone.js,google-maps-markers,parse-platform,Javascript,Google Maps,Backbone.js,Google Maps Markers,Parse Platform,我试图在谷歌地图上添加几个标记。 但是,只添加了最后一个。这可能是因为删除了引用,但我不知道javascript是如何工作的。我使用Parse来管理我的数据,它的工作原理类似于Backbone.js query.find()返回一个包含两个Foo对象的promise对象。我调用buildMarker(因为我在初始化时无法构建标记)和addToMap,但最后只添加了最后一个。 你能解释一下为什么它是这样工作的吗 我向您展示我的代码: 非常感谢,创建标记的代码在哪里?保留一个标记数组并将新标记推入

我试图在谷歌地图上添加几个标记。 但是,只添加了最后一个。这可能是因为删除了引用,但我不知道javascript是如何工作的。我使用Parse来管理我的数据,它的工作原理类似于Backbone.js

query.find()
返回一个包含两个Foo对象的promise对象。我调用buildMarker(因为我在初始化时无法构建标记)和addToMap,但最后只添加了最后一个。 你能解释一下为什么它是这样工作的吗

我向您展示我的代码:


非常感谢,

创建标记的代码在哪里?保留一个标记数组并将新标记推入其中,而不是重用对象Foo中包含的同一个标记。Foo::buildMarker()设置标记的位置,Foo::addToMap()设置映射。因此,每个标记都存储在“集合”中
promise
。我不想分离标记和Foo对象。。。
$(function(){
var Foo = Parse.Object.extend({
    className: "Foo",
    initialize: function(){
    },

    marker: new google.maps.Marker(),
    buildMarker: function(){
        var pos = this.get("position");
        this.marker.setPosition(new google.maps.LatLng(pos.latitude, pos.longitude));   
    },
    addToMap: function(map){
        this.marker.setMap(map);
    },
    removeFromMap: function(map){
        this.marker.setMap(null)
    }
});

var query = new Parse.Query(Foo);

promise = query.find({
    success: function(results){
        alert("success : " + results.length);
    }
});

promise.then(function(foo){
    foo.forEach(function(a){
        a.buildMarker();
        a.addToMap(map);
    });
});

});