2017-05-10 7 views
1

Meine VueJS/Laravel-Anwendung wird nicht ordnungsgemäß in GoogleMaps geladen, wie ich es erwarten würde. Ich verstehe nicht, warum der Rückruf nicht angerufen wird. Die Funktion ist verfügbar und sollte geladen werden. kannst du mir helfen? Ich finde meinen Fehler nicht. Ich erwarte nicht, die Karte noch zu sehen, wie ich nur ein consol.log in der Init habe, aber selbst das wird nicht genannt. Die Fehlermeldung beim Öffnen der vollständigen Google URL lautet:GoogleMaps Ungültiger Rückruf-Parameter

Der Google Maps-API-Server hat Ihre Anfrage abgelehnt. Ungültige Anfrage. Ungültiger 'Rückruf' Parameter.

<script src="https://maps.googleapis.com/maps/api/js?key=KEY&libraries=places,geometry&callback=App.init async defer"></script> 

HTML

<!DOCTYPE html> 
<html> 
<head> 
    <meta charset="utf-8"> 
    <meta name="viewport" content="width=device-width, initial-scale=1.0"> 
    <title>INSPINIA - @yield('title') </title> 


    <link rel="stylesheet" href="{!! asset('css/vendor.css') !!}" /> 
    <link rel="stylesheet" href="{!! asset('css/app.css') !!}" /> 

</head> 
<body> 

    <!-- Wrapper--> 
    <div id="wrapper"> 

     <!-- Navigation --> 
     @include('layouts.navigation') 

     <!-- Page wraper --> 
     <div id="page-wrapper" class="gray-bg"> 

      <!-- Page wrapper --> 
      @include('layouts.topnavbar') 

      <!-- Main view --> 
      @yield('content') 

      <!-- Footer --> 
      @include('layouts.footer') 

     </div> 
     <!-- End page wrapper--> 

    </div> 
    <!-- End wrapper--> 

    <script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.3.0/vue.min.js"></script> 
    <script src="{!! asset('js/app.js') !!}" type="text/javascript"></script> 
    <script src="{!! asset('js/main.js') !!}" type="text/javascript"></script> 
    <script src="https://maps.googleapis.com/maps/api/js?key=KEY&libraries=places,geometry&callback=App.init async defer"></script> 
@section('scripts') 
@show 

</body> 
</html> 

Haupt JS

const GISView = require('./components/GISView.vue'); 

window.Vue = Vue; 
window.Event = new class { 
    constructor() { 
    this.Vue = new Vue(); 
    } 

    fire(event, data = null) { 
    this.Vue.$emit(event, data); 
    } 

    listen(event, callback) { 
    this.Vue.$on(event, callback); 
    } 
}; 

var App = window.App = new Vue({ 
    el: '#app', 
    components: { 
    GISView: GISView 
    }, 
    data: {}, 
    methods: { 
    init: function() { 
     console.log("OK"); 
    } 
    } 
}); 

GIS VUE

<template> 
    <div id="map"></div> 
</template> 
<script> 
    import GoogleMaps from '../mixins/GoogleMaps.js'; 

    export default { 
     mixins: [GoogleMaps], 
     data: { 
      test: 1 
     }, 
     mounted() { 
      this.initMap(); 
     }, 
     methods: { 
      initMap: function() { 
       this.map = new google.maps.Map(document.getElementById('map'), { 
        center: { lat: 83.298, lng: 35.555}, 
        scollwheel: false, 
        zoom: 4 
       }) 
      } 
     } 
    } 
</script> 
#map {height:300px;width:500px;} 

Antwort

1

ändern

<script src="https://maps.googleapis.com/maps/api/js?key=KEY&libraries=places,geometry&callback=App.init async defer"></script> 

Um

<script src="https://maps.googleapis.com/maps/api/js?key=KEY&libraries=places,geometry&callback=App.init" async defer ></script> 

Und stellen Sie bitte Ihre API-Schlüssel nicht KEY ist;)

Die einzige Änderung, die async und defer nach außen von der bewegt API-URL

Verwandte Themen