Клуб API Карт

Рендер контента балуна только в момент открытия

Пост в архиве.

такая ситуация: на карте очень много объектов и для каждого балуна рендерится при создании карты html, что в итоге на 1к объектах занимает где-то 1-2сек, хотелось бы реализовать механизм с рендером html, только непосредственно перед открытием нужного балуна.

Возможно ли такое реализовать, если да, то от чего оттталкиваться? если ли у балуна что-то типа onBeforeOpen?

какие могут быть подводные камни при пролистывании нескольких балунов в кластере balloonCarouselContent?

6 комментариев

Можно слушать клик на метке и открывать балун самому,

как в этом примере из блога

да, я уже смотрю этот пример.

а можно ли как-то получить доступ к кастомному свойству GeoObject 

{ properties:

{myField: 1}}

из текущего открытого балуна?

                  

Вы можете вывести данные в балуне с помощью шаблона

 

var myBalloonContentBodyLayout = ymaps.templateLayoutFactory.createClass('$[properties.myField]');

Я сделал шаблон, добавил его в кластер, получилось 

clusterBalloonContentBodyLayout: 'cluster#balloonCarouselContent',

clusterBalloonContentItemLayout: ClusterBalloonContentItemLayout,

 

и отдельно при инициализации всех точек добавил 

 properties: {

                        clusterCaption: '',

                        deal: point.get('deal').toJSON(),

                       balloonContentLayout : ClusterBalloonContentItemLayout

                    }

в результате, если точки сгруппированы в кластер, то все показывается как надо (они листаются и т.п), а вот балуны одиночных меток е открываются. в чем может быть косяк?

balloonContentLayout это опция, а не данные.

Его надо передавать во втором параметре в конструкторе, а не в первом

Спасибо, все получилось!