1

バックボーン アプリケーションの開発を考えていますが、正しい方法で考えているかどうかわかりません。

これは私の最初のバックボーン アプリケーションになります。基本的に、「メイン」ビューとして Google マップを持つシンプルなアプリを開発したいと考えています。

アイデアは、API から位置情報をモデル (マーカーとしましょう) に取得することであり、これらのマーカーは地図上に表示されます。

マーカーをマップ ビューに接続する方法がわかりません。

  1. マップ ビューに addMarker() 関数が必要ですか?
  2. または、マーカーの render メソッドでマーカーをマップに追加する必要がありますか?
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 に答える