3

たとえば、いくつかのマーカーを含む observableArray があります。

var markers = ko.observableArray([
  { 
    id: 0, 
    title: ko.observable("Marker 0"), 
    lat: ko.observable(55.31),
    lng: ko.observable(11)
  },
  {
    id: 1, 
    title: ko.observable("Marker 1"), 
    lat: ko.observable(57.20),
    lng: ko.observable(15.5)
  }
]);

この配列は、要素ごとに Google マップ マーカーを作成する必要がある MapWidget オブジェクトに送信されます。緯度、経度の観測量が変更された場合はマーカーを移動し、タイトルの観測量が変更された場合はマーカーのタイトルを変更する必要があります。

つまり、MapWidget には googlemap マーカーの配列があり、指定された observableArray に接続する必要があります。それらを接続するための最良かつ最も簡単な方法は何ですか?

更新。MapWidget の詳細。

MapWidget は、いくつかの Google マップ マップ オブジェクトにアクセスできるオブジェクトであり、上記のようなマーカーを含む observableArray を引数として受け取ります。

var MapWidget = function(markers) {
  var div = $("#map").get(0);
  this.map = new gmaps.Map(div);
  /* 
    The magic goes here:
    markers is an observableArray, we subscribe for it's changes, 
    create gmaps.marker for each new element, 
    destroy in case of destroying them from array, 
    move and rename each marker in case of corresponding changes
  */
}  
4

1 に答える 1