Клуб API Карт

Подскажите, как вывести в балуне html

BabaninFV
30 мая 2011, 18:25

Получаю все поинты через

var ml = new YMaps.YMapsML( '...'  возвращается xml

В нем есть шаблон и параметр address (в нем текст находится в CDATA). Через админку описание точки сохраняется с тегами переноса.

Но когда открывается все это на карте, то теги идут ввидет текста и переноса строк нету.

Подскажите, как реализовать многострочный текст в балуне. Желательно через html.

P.S. http://www.krasrm.com/broadcast.html (ТК "Махаон", Шумятского, 2а там есть данные тестовые)


9 комментариев
Подписаться на комментарии к посту

нужна ссылка на страницу

Добавил ссылку на страницу.

html-теги должны быть только в шаблоне

вы же пытаетесь их передать внутри контекста для шаблона

так не будет работать

А как тогда вывести многострочный текст в балуне вообще?

Просто у каждой точки свои данные и очень не хочется для каждой строки свое поле делать.

А если динамически создавать каждую точку?

placemark.setBalloonContent('' + json.markers[i].descriptions + '');
 

ну да, как вариант так

 

создавать каждый плэйсмарк руками и добавлять ему balloonContent не обязательно

можно просто использовать другой транспорт вместо YMapsML,

например, получать json с помощью ajax запроса

и итерируясь по этому json создавать динамически метки, устанавливать для них содержимое балуна (placemark.setBalloonContent) и добавлять их на карту

 

 

либо как вариант можете попробовать разэскэйпить значения тэгов 

заменив '<br/>' на
в обработчике удачной загрузки YMapsML

Как я понял попробовать пройтись по данным после загрузки уже явой, заменяя значения.

можете подсказать как это сделать ?

P.S.

var ml = new YMaps.YMapsML - посмотрел как хранится адрес. Зачем он разбивается посимвольно ?

в тихом ужасе...



По той ссылке что я привел:

callback-функцию обработчика события передается ссылка на объект, для которого был вызван обработчик. 

он поддерживает методы группы (см. Наследуемые методы)

в частности forEach которым и можно "пройтись" по элементам

 

 

посмотрел как хранится адрес. Зачем он разбивается посимвольно ?

в тихом ужасе...
если честно не понял о чем идет речь

 

если через FireBug на той страничке вывести в консоль вот это:

mls._objects[0]._objects[40].metaDataProperty.AnyMetaData.address

То можно увидеть, что текст выглядит в виде массива и менять там что-либо просто бессмысленно.

Непонятно только для чего это сделано.

=)

это файербаг показывает строку ввиде массива символов

такая у него особенность

ведь правда же можно посмотреть тип

console.log(typeOf(mls._objects[0]._objects[40].metaDataProperty.AnyMetaData.address));