Клуб API Карт

overlay.html.Balloon

lazukin.arteom
24 мая 2016, 09:55

Возможно ли каким-то образом удалять overlay.html.Balloon?

5 комментариев
Подписаться на комментарии к посту
Зачем?
lazukin.arteom
25 мая 2016, 10:41
dimik,


В принципе разобрался, тогда вопрос состоит в другом!


map.geoObjects.events.add('balloonopen', function (e) {
   var placemark = e.get('target');
   console.log(placemark);
   var balloon = new ymaps.Balloon(placemark.getMap());
   var position = placemark.geometry.getCoordinates();
   balloon.options.setParent(placemark.options);
   balloon.open(position, { properties: placemark.properties });
});


С помощью этого куска кода у меня на карте может быть открыто сколько угодно балунов! так вот, при получении данных с сервера, у меня открывается необходимый кастомизированный балун [ с помощью ymaps.templateLayoutFactory.createClass("<div class='someClass''>{{properties.balloonContent}}</div>") ] на карте и висит он на карте 8 секунд, после чего скрывается! Но если с сервера придется ответ и балуну с новым значением потребуется открыться на месте той же метки, где в этот момент висит старый, то он откроется поверх старого! А мне надо так, если требуется открыться новому балуну поверх старого, то старый сначала должен закрыться( хоть сразу, хоть по истечении 8 секунд), и только тогда появится новый!
lazukin.arteom,

var balloon = new ymaps.Balloon(placemark.getMap());



В документации сказано, что не стоит самому инстанцировать этот класс
> Не создавайте их самостоятельно, если в этом нет необходимости.


Если уж вы это делаете, то вам придется самому управлять всеми этими балунами.
Храните что ли какой-то стек с инстанциями балунов
lazukin.arteom
25 мая 2016, 12:13
dimik,
 Не совсем пойму как дальше работать с balloonами после того, добавления их в стек
lazukin.arteom,
Ну видимо доставать старый из стека и закрывать. Надо же где-то хранить ссылки на открытые балуны если их много