谷歌地图和backbone.js

Ale*_*and 1 backbone.js

我正在考虑开发一个骨干应用程序,但我不确定我是否正确地考虑它.

这将是我的第一个骨干应用程序.基本上,我想开发一个简单的应用程序,将谷歌地图作为其"主要"视图.

我们的想法是将API中的位置信息提取到模型中,比如Marker,这些标记将显示在地图上.

我不确定如何将标记连接到地图视图:

  1. 地图视图是否应具有addMarker()函数?
  2. 或者标记的渲染方法是否应该将标记添加到地图中?

rjz*_*rjz 5

如何创建Collection标记并将其传递给initialize视图中的函数?

这将允许您绑定change事件以在标记集合更改时更新映射.然后,无论何时您add是集合的标记,地图视图都将捕获集合中的更改,并能够添加标记并根据需要调整自身以适应.

例如,在这些行上创建一个视图:

// in Backbone.View
initialize: function (opts) {
  _.bindAll(this);
  this.markers = opts.markers;
  this.markers.on('change', this.render);
},

render: function () {
  // create or update the map
}
Run Code Online (Sandbox Code Playgroud)

当您想要初始化视图时,您现在可以使用以下内容:

var markers = new MyApp.MarkerCollection(),
    view = new MyApp.MapView({ markers: markers });
Run Code Online (Sandbox Code Playgroud)