Я работаю с Воск с Leaflet .Я настраиваю карту США, рисуя границы штатов с помощью GeoJSON, используя буклет L.GeoJSON.
Я могу настроить все во время загрузки карты, но мне нужно иметь возможность настроитьсодержимое во всплывающих окнах после рисования карты.Вот урезанная версия того, что я делаю:
var gjStates = new L.GeoJSON(null, null);
wax.tilejson(url, function(tilejson) {
map = new L.Map('map').addLayer(new wax.leaf.connector(tilejson)).addLayer(gjStates);
gjStates.on("featureparse", function (e) {
if (e.properties && e.properties.name){
pops[e.id.substring(4)] = e.layer.bindPopup('<h4>Hello ' + e.properties.name + '!</h4>');
}
});
for (s in usStateData) {
gjStates.addGeoJSON(usStateData[s]);
}
});
Теперь все хорошо, у всплывающих окон хорошее содержание, но потом я хочу изменить его позже, и нет никакого способа сослаться на него.В исходном коде я увидел, что bindPopup () возвращает this, который, как мне показалось, был объектом L.Popup, но в итоге получил нечто иное.Так, например, следующий код будет обновлять активное всплывающее окно, а не конкретное для конкретного объекта L.Path (состояния), к которому я пытаюсь добраться.
pops['AK']._map._popup.setContent('I am ALASKA!');
Копание DOM с помощью firebugЯ также вижу, что содержимое всплывающего окна задано во внутренней переменной, и я могу его обновить.Однако его обновление не обновляет HTML, и у меня нет возможности узнать, что Аляска имеет ключ 52. _layers [52] также не имеет метода setContent (), на который я бы надеялся, если бы он был L.Popup объект.
gjStates._layers[52]._popupContent = 'I am ALASKA!';
Итак, я застрял и не могу найти то, что мне нужно.Можно ли как-нибудь ссылаться и обновлять содержимое для определенного всплывающего окна на карте после первоначального рендеринга?