2017-01-10 3 views
3

Я использую версию angularjs 1.13.X. В моем приложении есть окно поиска автозаполнения google в качестве директивы. При загрузке страницы, следующей за сообщением об ошибке, отображается в консоли, но окно поиска работает нормально.Google помещает автозаполнение, показывает ошибку в консоли в angularjs?

InvalidValueError: setComponentRestrictions: in property country: not a string; and not an Array 

Моя директива Код

routerApp.directive('googleplace', ['$state', function ($state) { 
      return { 
       require: 'ngModel', 
       link: function (scope, element, attrs, model) { 
        var options = { 
         types: [], 
         componentRestrictions: {} 
         }; 
        scope.gPlace = new google.maps.places.Autocomplete(element[0], options); 
        google.maps.event.addListener(scope.gPlace, 'place_changed', function (e) { 
         scope.$apply(function() { 
          model.$setViewValue(element.val()); 
          var countrycode = "na"; 
          var latitude = 0; 
          var longitude = 0; 
          scope.secondplacebox = scope.chosenPlace; 
          for (var i = 0; i < scope.gPlace.getPlace().address_components.length; i++) { 
           if (scope.gPlace.getPlace().address_components[i].types[0] == 'country') { 
            countrycode = scope.gPlace.getPlace().address_components[i].short_name; 
           } 
          } 
          latitude = scope.gPlace.getPlace().geometry.location.lat().toFixed(6); 
          longitude = scope.gPlace.getPlace().geometry.location.lng().toFixed(6); 
          //$state.go('home'); 
          scope.Fn_setCookieData(latitude, longitude, countrycode); 

         }); 
        }); 
       } 
      }; 
     } 
    ]); 

Как решить эту проблему? Пожалуйста, помогите мне, и спасибо заранее

ответ

10

Я вижу options оказывают componentRestrictions и не ограничиваются конкретной страны. Наличие ограничения по стране, например componentRestrictions: {country: 'fr'}, может решить проблему. Замените fr на требование вашей страны. Если вам не нужны ограничения для страны, просто не используйте ее в настройках.

Надеюсь, это вам поможет!

+3

Спасибо, что это сработало, я удалил componentRestrictions: {} –

+0

Это работает. Спасибо – Moppo

+0

Ошибка msg должна быть более ясной –

2

У меня такая же проблема, но я перешел на версию 3, и она сработала.

Before http://maps.googleapis.com/maps/api/js?key=[MyKey]&libraries=places&language=en 

After http://maps.googleapis.com/maps/api/js?key=[MyKey]&libraries=places&language=en&v=3 
Смежные вопросы