Угловое автозаполнение Google не работает

Я использовал автозаполнение Google в своем проекте, он работает нормально на локальном, но не работает на сервере, вот мой код

app.js

angular.module('MaterialApp', [
'ui.router', 'ngAnimate', 'ngMaterial',
'ngSanitize', 'ui.sortable', 'base64',
'angular-md5', 'blockUI', 'oc.lazyLoad',
'ngMdIcons', 'md.data.table', 'highcharts-ng',
'google.places', 'ui.calendar', 'ui.date',
'easypiechart', 'ngFileUpload', 'ngCookies',
"isoCurrency", "ngBootstrap", "datatables", "authService", "companyService" // "templatescache"])

form.html

<div class="form-group group-pro">
                    <div class="group-row col-sm-10 col-sm-push-1"> 
                        <input class="form-control control-set" ng-model="campaign.location_data" name="location_data" type="text" g-places-autocomplete  id="location_data" placeholder="Enter the location you want to target" force-selection="true" autocomplete="on" required=""/>
                        <div ng-show="createCampaignForm.$submitted || createCampaignForm.location_data.$touched" ng-model="createCampaignForm.location_data">
                            <span ng-show="createCampaignForm.location_data.$error.required" class="text-danger">Please enter location data.</span>
                        </div>
                    </div>
                </div>

мой controller.js

$scope.$on('g-places-autocomplete:select', function (event, place) {
            console.log(event);
            console.log(place);
            var componentForm = {
                locality: 'city', //city
                administrative_area_level_1: 'region', //state
                country: 'country' //country
            }, place_selection_val = [];
            for (var cFKey in componentForm) {
                $scope.campaign[componentForm[cFKey]] = null;
            }
            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].short_name;
                    place_selection_val.push(val);
                    $scope.campaign[componentForm[addressType]] = val;
                }
            }
            $scope.campaign.location_data = place_selection_val.join(', ').replace(/^\s+|\s+$/g, '');
        });

Пожалуйста, помогите мне, почему он не работает на сервере.

2 ответа

angular.module('MyTouchModule', ['ui.router', 'ngMaterial', 'ngMessages'])

.config(function( $mdGestureProvider ) {
    $mdGestureProvider.skipClickHijack();
})

Привет Это мне очень помогло. Погуглил довольно долго для этого. Проблема заключалась в конфликте между угловым материалом и обработкой событий автозаполнения (слушатели). Это должно помочь.

Если вы используете ключи API, обязательно включите веб-службу API Google Адресов на https://console.developers.google.com/.

Есть ли какие-либо ошибки, которые вы могли бы показать в консоли разработчика?

Я полагаю, вы в том числе

   <script src="https://maps.googleapis.com/maps/api/js?libraries=places"></script>

Кроме того, я бы проверил путь к файлу вашего скрипта после его публикации на сервере.

Другие вопросы по тегам