谷歌在angularjs的控制台中放置自动完成显示错误?

时间:2017-01-10 05:11:43

标签: angularjs

我正在使用angularjs版本1.13.X.在我的应用程序中有一个谷歌放置自动完成搜索框作为指令。当加载页面后,控制台显示错误,但搜索框工作正常。

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);

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

如何解决这个问题?请帮助我,并提前致谢

2 个答案:

答案 0 :(得分:11)

我看到optionscomponentRestrictions,并且不限于特定的国家/地区。像componentRestrictions: {country: 'fr'}这样的国家限制可以解决问题。将fr替换为您所在国家/地区的要求。如果您不需要对国家/地区的限制,只需避免在选项中使用它。

希望这能帮到你!

答案 1 :(得分: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