Клуб API Карт

Форма в балуне.

an-d-r-ej
28 ноября 2012, 16:30

Решил перевести приложение на новую версию API.

 

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

В балуне была форма, в которую заносились некие данные. (пользователем).

 

при перерисовке балуна (я так понял, это происходит при открытии, перемещении, изменении размеров окна), данные из формы пропадают. Точнее меняются на первоночальные. В этом - отличие от первой версии API. 

Собственно тоже самое происходит и в конструкторе карт. http://api.yandex.ru/maps/tools/constructor/

поэтому не буду приводить кодов и ссылок.

Попробуйте поставить метку, затем ввести что-то в форму, закрыть и открыть балун.

Все введенное - пропадет, если не нажать ОК. Возможно это поведение и логично, если принимать закрытие балуна, как отказ от введенных данных. Но тогже самое произойдет при изменении размера окна карты. (попробуйте). И при перетаскивании метки с открытым балуном (это в конструкторе не реализовано). Но - тоже балун обновится до исходного состояния.

Может есть какое то предсобытие, которое предшествует перерисовке балуна. Чтобы не ловить все их по отдельности?

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

При закрытии балун уничтожается, и соответственно, при открытии отрисовывается заново. Если у вас шаблонные макеты то это нормальное поведение.
Вы можете использовать в качестве содержимого балуна DOM элементы. Их состояние должно сохраняться после закрытия.

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

да. у меня -шаблон.

А DOM элементы, я так понимаю задаются - в balloonContent?

или...?

"Странно, что балун перерисовывается при изменении размеров карты".

Мне больше странно, что он перерисовывается при перетаскивании метки с открытым балуном...))

var placemark_rd = new ymaps.Placemark([0, 0], {

hintContent: '',

balloonContent: ''

},{

hideIconOnBalloonOpen: false,

draggable: true

});

map.geoObjects.add(placemark_rd);

placemark_rd.balloon.open();

 

вот балун перерисовывается при открытии и изменении размеров окна. (форма обнуляется).

при перетаскивании - все сохраняется.

 

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