Здравствуйте.
Есть стилизованный под сайт ContentLayout для балуна, который создается с помощью ymaps.templateLayoutFactory.createClass(). Этот ContentLayout устанавливается при создании Placemark. Все хорошо, работает - балун всплывает с нужной информацией.
Теперь возникла задача подгружать данные балуна с сервера в момент открытия балуна. За основу я взял balloon_ajax из песочницы. Но возникли проблемы:
1) Не получается сменить ContentLayout балуна после загрузки данных и непонятно - возможно ли это вообще. Т.е. вообще есть два пути, на мой взгляд: или a) отображать надпись "Загрузка данных..." в balloonContent и после загрузки менять ContentLayout балуна с передачей загруженных данных, или b) надпись "Загрузка данных..." встраивать в ContentLayout и скриптами управлять видимостью этой надписи и основной части балуна. Тут вторая проблема.
2) Не получается поменять данные в балуне. Даже если просто в событии balloonopen сделать
placemark.balloon.setData(<объект с данными>)
, то балун все равно откроется с незаполненными данными. При этом вполне работает
placemark.properties.set('balloonContent', "Идет загрузка данных...")
, если, конечно, при создании placemark не передавать ContentLayout балуна.
Т.е. вопросы:
1) Есть ли возможность сменить ContentLayout открытого балуна и передачей новых данных?
geoObject.Balloon.setOptions({contentLayout: BalloonContentLayout})
я тоже пробовал - не работает.
2) Если нет, то возможно ли открытому балуну передать новые данные для ContentLayout, чтобы он их отобразил?