2015-01-04 6 views
0

создать свежий проект yii2gmap3 не является функцией от yii2 тела

в голову тег Поручаю Jquery Google API и GMap с

<?php 
    $this->head(); 
    Yii::$app->view->registerJsFile('//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js',['position' => yii\web\View::POS_HEAD]); 

    Yii::$app->view->registerJsFile('http://maps.googleapis.com/maps/api/js?sensor=false',['position' => yii\web\View::POS_HEAD]); 
    Yii::$app->view->registerJsFile('/js/gmap3/dist/gmap3.js',['position' => yii\web\View::POS_HEAD]); 
    ?> 

и всегда в голову поставить этот скрипт

<script type="text/javascript"> 
    $(function(){ 
    $('#test1').gmap3({ 
     marker:{ 
     address: "Haltern am See, Weseler Str. 151" 
     }, 
     map:{ 
     options:{ 
      zoom: 14 
     } 
     } 
    }); 
    }); 
</script> 

проблема заключается в разделе

тела, если я использую этот код

<?php $this->beginBody() ?> 
    <div id="test1" class="gmap3"></div> 
<?php $this->endBody() ?> 

НЕ РАБОТАЕТ

, если я использую этот код

<?php //$this->beginBody() ?> 
    <div id="test1" class="gmap3"></div> 
<?php //$this->endBody() ?> 

РАБОТАТЬ

Функция beginBody сделать конфликт с gmap3

Firebug скажите мне

TypeError: $ (...) .gmap3 не является функцией $ ('# test1'). gmap3 ({

+1

Возможно, вы включили библиотеку дважды! – tinybyte

+1

Вы пытались поместить '' '' $ this-> head(); '' 'после' '' Yii :: $ app-> view-> registerJsFile() '' 'звонки? Также неясно, что именно там, где вы помещаете свой javascript-код, я имею в виду, в каком файле? – Tahir

ответ

0

Большое спасибо за отзыв.

Проблема была по умолчанию (yii2) заряда jquery: внизу страницы в. Я решил добавить позицию jquery по умолчанию в раздел главы. я изменить файл AppAsset.php и я добавить код в последующем класс AppAsset

public $jsOptions = array('position' => \yii\web\View::POS_HEAD); 

После в main.php (вид/папку макета)

<?php 
    Yii::$app->view->registerJsFile('http://maps.googleapis.com/maps/api/js?sensor=false',['position' => yii\web\View::POS_HEAD]); 
    $this->head();  
?> 
<script type="text/javascript" src="js/gmap3/dist/gmap3.js"></script> 
<script type="text/javascript"> 
    $(function(){ 
    $('#test1').gmap3({ 
     marker:{ 
     address: "Haltern am See, Weseler Str. 151" 
     }, 
     map:{ 
     options:{ 
      zoom: 14 
     } 
     } 
    }); 
    }); 
</script> 
</head> 

спасибо!