我有一个带有一些标记的 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)
}
]);
这个数组被发送到某个 MapWidget 对象,该对象必须为每个元素创建谷歌地图标记。它必须移动标记以防 lat、lng 可观察值发生变化,更改标记的标题以防可观察到的标题发生变化等等。
这意味着在 MapWidget 中有一些 googlemap 标记数组,它应该与给定的 observableArray 连接。连接它们的最佳和最简单的方法是什么?
更新。有关 MapWidget 的更多详细信息。
MapWidget 是一个可以访问某些 google maps 地图对象的对象,它接收一个带有上述标记的 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
*/
}