registerScript непонятно вставляет JS

Уже исправленные репорты или принятые предложения
Закрыто
ii343hbka
Сообщения: 2
Зарегистрирован: 2012.09.20, 11:43

registerScript непонятно вставляет JS

Сообщение ii343hbka »

Не знаю баг это или нет, но

Код: Выделить всё

private $baseMapJScript =
            '
            ymaps.ready(init);
            
            var map;
            function init( ) {
                map = new ymaps.Map("YAMapsID", {
                        center: [_$coords_],
                        zoom: _$zoomLevel_,
                        type: "yandex#_$mapType_",
                        behaviors: ["default", "scrollZoom"]
                });
            }
            map.controls.add("zoomControl")
                        .add("mapTools")
                            .add(new ymaps.control.TypeSelector(["yandex#map", "yandex#satellite", "yandex#hybrid"]));
            ';
private $mapOnClickEventController    =
                        '
                        map.events.add("click",
                            function(e) {
                                var placemark = new ymaps.Placemark(
                                    e.get("coordPosition"), {
                                        iconContent: "Placemark",
                                        balloonContent: "Placemark at " + e.get("coordPosition")
                                    }, {
                                        draggable: true,
                                        hideIconOnBalloonOpen: false
                                    }
                                );
                                map.geoObjects.add(placemark);
                            }
                        );
                        ';
 
затем

Код: Выделить всё

$this->resultMapCode = $this->baseMapJScript . $this->mapOnClickEventController;

Yii::app()->getClientScript()->registerScript('YAMaps',
                $this->resultMapCode,
                CClientScript::POS_BEGIN
            );
 
конкатенация проходит норм и результат на js выглядить след. образом

Код: Выделить всё

ymaps.ready(init);

var map;

function init( ) {
map = new ymaps.Map("YAMapsID", {
center: [36.587623, 50.596546],
zoom: 10,
type: "yandex#satellite",
behaviors: ["default", "scrollZoom"]
});
}

map.controls.add("zoomControl")
.add("mapTools")
.add(new ymaps.control.TypeSelector(["yandex#map", "yandex#satellite", "yandex#hybrid", "yandex#publicMap"]));

map.events.add("click",
function(e) {
map.balloon.open(
e.get("coordPosition"), {
content: "Balloon at " + e.get("coordPosition")
}, {
closeButton: true
});
}
); 
но, блин, объект map при регистрации клика уже нуль, хотя должен быть объектом
хрен пойми почему так
если в файрбаге вставлять код в отладчик, то вылазиет карта с обработчиком на клик, т.е. все работает
ii343hbka
Сообщения: 2
Зарегистрирован: 2012.09.20, 11:43

Re: registerScript непонятно вставляет JS

Сообщение ii343hbka »

это гадский JS , если echo'м выводить, та же трабла(
закрывайте тему
Закрыто