Клуб API Карт

Как изменить контент балуна кластера?

Андрей Федотов
23 сентября 2016, 15:52

Здравствуйте, при клике на объект, отправляется ajax запрос для получения содержимого балуна этого объекта вот так:

            objectManager.objects.events.add('click', function (e) {

                var objectId = e.get('objectId');
                var objects = [];
                objects.push(objectId);
                $.post('/ajax/balloon', {objects: objects}, function (data) {

                    var obj = objectManager.objects.getById(objectId);

                    obj.properties.balloonContent = data;

                    objectManager.objects.balloon.open(objectId);
                });
            });

Теперь требуется сделать аналогично но для кластера. Т.е. при клике на кластер, мне нужно так же отправить ajax запрос на сервер, получить список объектов, которые входят в этот кластер и подставить их в балун кластера. Проблема только с подстановкой полученных данных в балун кластера. Никак не могу заменить контент балуна кластера. Все время открывается стандартный `balloonLayout`.

Пробовал вот так:

            objectManager.clusters.events.add('click', function (e) {

                var objectId = e.get('objectId');

                //var objectState = objectManager.getObjectState(objectId);

                //var objects = objectState.cluster.getGeoObjects();
                var cluster = objectManager.clusters.getById(objectId);
                
                cluster.properties.balloonContentBody = "asd";
                objectManager.clusters.balloon.open(objectId);

            });

Толку нет! Как быть с балуном кластера? Как его заменить? На сайте http://zoon.ru/msk/fitness/ сделано это просто на УРА! Заранее спасибо.

1 комментарий
Подписаться на комментарии к посту
С кластером никак не быть, т.к. он каждый раз заного создается.
Не раз писал, что загрузку данных лучше делать в макете балуна, а не через подписку на click и манипуляции с этими objectId


http://jsfiddle.net/1dpotvy6/