1

我正在考虑开发一个主干应用程序,但我不确定我是否以正确的方式考虑它。

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

这个想法是从 API 获取位置信息到模型中,比如说标记,这些标记将显示在地图上。

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

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

1 回答 1

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
}

当你想初始化视图时,你现在可以使用这样的东西:

var markers = new MyApp.MarkerCollection(),
    view = new MyApp.MapView({ markers: markers });
于 2012-05-12T23:33:09.277 回答