Клуб API Карт

Передача properties в balloon

cjslade
17 июня 2014, 17:09

Создаю балун примерно так:

 

balloon = new ymaps.Balloon(map,

      layout: ymaps.templateLayoutFactory.createClass("<div>{{properies.name}}</div>")

)

balloon.options.setParent(map.options)

balloon.open(map.getCenter());

  

Как ему задать properties, чтобы они были видны шаблонизатором? 

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

У вас тут написан невалидный javascript

 

Не надо самому создавать балун.

Используйте тот что есть на карте.

myMap.balloon.open(coordinates, data, options);

А так не удалось задать шаблон.

 

var layout = ymaps.templateLayoutFactory.createClass("{{properies.name}}");

map.balloon.open(map.getCenter(), {

        properties: {name: "Name"}

      }, {

        layout: layout,

        balloonLayout: layout

      }

    )

map.balloon.open(map.getCenter(), {

        name: "Name"

      }, {

        layout: layout

      }

    )

Было бы отлично, но http://jsfiddle.net/9Gze2/6/

Да, там же нет менеджера. данные напрямую надо писать

http://jsfiddle.net/9Gze2/7/

Если надо переопределить только макет контента (а не весь балун)

используйте ключ contentLayout

http://jsfiddle.net/9Gze2/8/

Не выходит. Воссоздал свой кейс более детально:

http://jsfiddle.net/9Gze2/13/

 

Как писал Дима выше, вы используете неверный ключ для опции. Вот рабочий вариант http://jsfiddle.net/9Gze2/14/

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

Нужно ли вам в боевых условиях выполнять эту же последовательность действий? Если да, то мы поищем воркэраунд. Если нет, то просто пофиксим в будущем релизе.

Да, боевой кейс такой:

- нажимаем на балун кластера, открывается балун со списком объектов;

- нажимаем на объект, открывается балун самого объекта.

Все балуны с кастомными шаблонами.

 

И текущий костылек: http://jsfiddle.net/9Gze2/15/

Ну да, костылек верный.

В будущих релизах поправим.