Пытаюсь сделать кастомный балун для кластера, но проблема в том, что туда ничего не приходит если брать пример из документации, при том, что для стандартных просто запихиваю в body и вывожу верстку, и всё работает.
В частности:
var clusterContentLayout = ymaps.templateLayoutFactory.createClass([ '<div class="proposal__item"> \ <div class="balloon__overlay {{ properties.geoObjects[0].properties.load }}"></div> \ <div class="MapBalloon_Header"> \ <div class="MapBalloon_HeaderTitle"> {{ properties.geoObjects[0].properties.title }} </div> \ </div> \ <div class="MapBalloon_Body" style="height: auto"> \ {% for geoObject in properties.geoObjects %} \ <div class="MapBalloon_Item"> \ <div class="MapBalloon_ItemImg" style="background-image: url({{ geoObject.properties.photo }})"> \ <a href="{{ geoObject.properties.url }}"> \ <img src="{{ geoObject.properties.photo }}" alt="{{ geoObject.properties.title }}" /> \ </a> \ </div> \ <div class="MapBalloon_ItemBody"> \ <div class="MapBalloon_ItemBodyType">{{ geoObject.properties.type }}</div> \ <div class="MapBalloon_ItemBodyInfo"> \ <a href="{{ geoObject.properties.url }}">{% if geoObject.properties.rooms %} {{ geoObject.properties.rooms }}-к {% endif %}{{ geoObject.properties.type }} {% if geoObject.properties.area %}{{ geoObject.properties.area }} м<sup>2</sup>{% endif %}{% if geoObject.properties.area %} {{ geoObject.properties.floors }} эт.{% endif %}</a> \ </div> \ <div class="MapBalloon_ItemBodyPrice">{{ geoObject.properties.price }}<span class="roub-sign"> {{ geoObject.properties.currency }}</span></div> \ </div> \ </div> \ {% endfor %} \ </div> \ </div>' ].join(''));
Возможно, потому что у меня динамическая загрузка аяксом:
... var objectState = objectManager.getObjectState(objectId); if (!objectState.isClustered) { object.properties.load = ''; objectManager.objects.balloon.open(objectId); } else { objectManager.clusters.balloon.open(objectState.cluster.id); }
... objectManager.objects.events.add('click', function (e) { e.preventDefault(); var objectId = e.get('objectId'); setBalloonData(objectId); }); objectManager.clusters.events.add('click', function (e) { e.preventDefault(); var objectId = e.get('objectId'); }); //Monitor cluster changes var activeObjectMonitor = new ymaps.Monitor(objectManager.clusters.state); activeObjectMonitor.add('activeObject', function () { var objectId = activeObjectMonitor.get('activeObject').id; setBalloonData(objectId); });