1

Я работаю с картой IONIC. Проблема пришла ко мне при попытке внедрить API Карт Google в поля автозаполнения.Как решить эту ошибку? -> 'Uncaught ReferenceError: geolocate не определен,' IONIC

Полная ошибка: 3 886874 error Uncaught ReferenceError: geolocate is not defined, http://localhost:8100/?ionicplatform=android#/tab/compartir, Line: 1

Код в compartir.html:

<div id="locationField"> 
     <input id="autocomplete" placeholder="Enter your address" onFocus="geolocate()" type="text"></input> 
    </div> 

код в index.html:

<script src="https://maps.googleapis.com/maps/api/js?key=AIzaTyAerQ5pzis73-ojGb2D-Rom3NFiS5s1Y7U&libraries=places&callback=initAutocomplete" async defer></script> 

[...]

код в контроллерах.js:

.controller('CompartirCtrl', function($scope, $location, $cordovaSQLite) { 




// This example displays an address form, using the autocomplete feature 
// of the Google Places API to help users fill in the information. 

var placeSearch, autocomplete; 


$scope.initAutocomplete = function() { 
    // Create the autocomplete object, restricting the search to geographical 
    // location types. 
    autocomplete = new google.maps.places.Autocomplete(
     /** @type {!HTMLInputElement} */(document.getElementById('autocomplete')), 
     {types: ['geocode']}); 

    // When the user selects an address from the dropdown, populate the address 
    // fields in the form. 
    autocomplete.addListener('place_changed', fillInAddress); 
} 

// [START region_fillform] 
$scope.fillInAddress = function(){ 
    // Get the place details from the autocomplete object. 
    var place = autocomplete.getPlace(); 

    for (var component in componentForm) { 
    document.getElementById(component).value = ''; 
    document.getElementById(component).disabled = false; 
    } 

    // Get each component of the address from the place details 
    // and fill the corresponding field on the form. 
    for (var i = 0; i < place.address_components.length; i++) { 
    var addressType = place.address_components[i].types[0]; 
    if (componentForm[addressType]) { 
     var val = place.address_components[i][componentForm[addressType]]; 
     document.getElementById(addressType).value = val; 
    } 
    } 
} 
// [END region_fillform] 

// [START region_geolocation] 
// Bias the autocomplete object to the user's geographical location, 
// as supplied by the browser's 'navigator.geolocation' object. 
$scope.geolocate = function(){ 
    if (navigator.geolocation) { 
    navigator.geolocation.getCurrentPosition(function(position) { 
     var geolocation = { 
     lat: position.coords.latitude, 
     lng: position.coords.longitude 
     }; 
     var circle = new google.maps.Circle({ 
     center: geolocation, 
     radius: position.coords.accuracy 
     }); 
     autocomplete.setBounds(circle.getBounds()); 
    }); 
    } 
} 
// [END region_geolocation] 

[...]

ответ

0

У меня была такая же проблема, но с угловыми 2 и машинопись.

Попробуйте изменить onFocus="geolocate()" на (focus)="geolocate()".

+0

Можете ли вы поделиться дополнительным битом кода, связанным с файлом ошибки? –

+0

<вход ... onFocus = "geolocate()" ... будет <вход ... (фокус) = "geolocate()" ... –