Всем привет! Недавно занимаюсь картами и столкнулся с такой проблемой. Балуны у меня кладутся в коллекцию и на них вешаются события baloonopen в котором меняется содержимое балуна. Так вот когда событие срабатывает то балун открывается со старым значением, но его боди меняется после открытия. Я делаю загрузку данных балуна по ajax и не получается обновить его содержимое. В чем может быть проблема ? Пример динамической загрузки балуна я видел и запускал, работает, а мой код не хочет, в чем может быть проблема ? Есть какой-нибудь реальный пример загрузки данных аяксом, кликаешь, он загружает и показывает балун ? Только пример с работой в коллекции
var myMap;
ymaps.ready(function(){
myMap = new ymaps.Map("map", {
center: [55.160283, 51.40],
zoom: 10,
controls: ['zoomControl', 'fullscreenControl']
});
});
function buildMarkers(markers) {
ymaps.ready(function(){
var collection = new ymaps.GeoObjectCollection();
for(var i=0; i < markers.length; i++){
var marker = markers[i];
var flat = new ymaps.Placemark(
[marker[1], marker[0]],
{
balloonContent: "balloon!"
},
{
iconLayout: 'default#image',
//preset: 'islands#circleIcon',
//iconColor: '#0088cf',
hideIconOnBalloonOpen: false,
iconImageHref: "pin.png",
iconImageSize: [32, 32],
iconImageOffset: [-16, -16],
openEmptyBalloon: true,
openBalloonOnClick: false
}
)
flat.events.add('mouseenter', function (e) {
e.get('target') // myPlacemark
.options.set('iconImageHref', "pin_hover.png");
});
flat.events.add('mouseleave', function (e) {
e.get('target') // myPlacemark
.options.set('iconImageHref', "pin.png");
});
flat.events.add('balloonopen', function (e) {
// тут я меняю контент балуна! Он меняется, но открывается со старым значением!
flat.properties.set('balloonContent', 'new body!');
});
collection.add(flat);
}
myMap.geoObjects.add(collection);
});
}