Javascript 爱奥尼亚:点击事件,从Google places api中选择地点

Javascript 爱奥尼亚:点击事件,从Google places api中选择地点,javascript,google-maps-api-3,onclick,ionic-framework,hybrid-mobile-app,Javascript,Google Maps Api 3,Onclick,Ionic Framework,Hybrid Mobile App,我是爱奥尼亚的新手。我正在尝试在我的ionic应用程序中使用GooglePlacesAPI。我可以通过GooglePlacesAPI获取位置。但问题是我必须在应用程序中长按autocomplete选项,否则选择不会反映在应用程序中 这是我的Html代码 <script src="http://maps.googleapis.com/maps/api/js?sensor=false&amp;libraries=places"></script> <in

我是爱奥尼亚的新手。我正在尝试在我的ionic应用程序中使用GooglePlacesAPI。我可以通过GooglePlacesAPI获取位置。但问题是我必须在应用程序中长按autocomplete选项,否则选择不会反映在应用程序中

这是我的Html代码

<script src="http://maps.googleapis.com/maps/api/js?sensor=false&amp;libraries=places"></script>    
<input id="pac-input" class="controls" type="text" placeholder="Search Box" data-tap-disabled="true">
<div id="map" data-tap-disabled="true"></div>

有关此问题的解决方案,请参阅。问题是google动态添加了需要data tap disabled属性的元素,因此在google将这些元素添加到dom后,您必须手动添加该属性

$scope.disableTap = function () {
    var container = document.getElementsByClassName('pac-container');
    angular.element(container).attr('data-tap-disabled', 'true');
    var backdrop = document.getElementsByClassName('backdrop');
    angular.element(backdrop).attr('data-tap-disabled', 'true');
    // leave input field if google-address-entry is selected
    angular.element(container).on("click", function () {
        document.getElementById('pac-input').blur();
    });
};
现在将
ng change='disableTap()'
添加到您的
输入中

<input ng-change='disableTap()' id="pac-input" class="controls" type="text" placeholder="Search Box" data-tap-disabled="true">


github链接使用了
ng focus
,但是
ng change
对我来说效果更好,因为有时候在启动focus时生成的元素还不存在。

感谢您的快速回复。成功了。为了让它工作,我替换了inputEl.blur();使用document.getElementById('pac-input').blur();在Html中,在输入类型中添加了ng模型,因为我们正在使用ng change。。非常感谢。它节省了很多时间
<input ng-change='disableTap()' id="pac-input" class="controls" type="text" placeholder="Search Box" data-tap-disabled="true">