使用谷歌自动完成api v3

时间:2015-04-22 08:01:11

标签: google-maps-api-3

我试图在我的ember.js App中使用google的Autocomplete api

我的观点:

import Ember from 'ember';
import autocomplete from '../utils/google-geocoder-autocomplete.js';

export default Ember.View.extend({
  templateName: "mapLocation",
  classNames: ["map-location"],
  autocomplete: function() {
    autocomplete($(".map-location-search-input-2")[0]);
    console.log(autocomplete);
  }.on('didInsertElement')
});

我的自动完成功能:

export default function googleGeocoderAutocomplete(input) {
    var autocomplete = google.maps.places.Autocomplete(input);
  return autocomplete;
}

我在函数中添加了一个中断,这里是值:

输入:

<input class="map-location-search-input-2" type="text">

调用自动填充时,我收到了错误:

TypeError:此[Lb]不是函数

编辑不是EMBER.JS问题删除标记

我已设置最小设置以显示问题

源:

<html>
<head>
  <meta charset="utf-8">
  <title>demo autocomplete</title>
  <meta name="description" content="">
</head>
<body>
<input type="text" id="auto"/>
<script src="https://maps.googleapis.com/maps/api/js?libraries=places&key=AIzaSyBb1BipElNZJQPhdkSUdX5DxZpPnQV_D3k"></script>
<script>
    var autocomplete = google.maps.places.Autocomplete(document.getElementById("auto"));
</script>
</body>
</html>

从检查器视图生成HTML:

<html>
<head>
  <meta charset="utf-8">
  <title>demo autocomplete</title>
  <meta name="description" content="">
<script type="text/javascript" charset="UTF-8" src="https://maps.gstatic.com/maps-api-v3/api/js/20/9/intl/fr_ALL/common.js"></script><script type="text/javascript" charset="UTF-8" src="https://maps.gstatic.com/maps-api-v3/api/js/20/9/intl/fr_ALL/util.js"></script><script type="text/javascript" charset="UTF-8" src="https://maps.gstatic.com/maps-api-v3/api/js/20/9/intl/fr_ALL/controls.js"></script><script type="text/javascript" charset="UTF-8" src="https://maps.gstatic.com/maps-api-v3/api/js/20/9/intl/fr_ALL/places_impl.js"></script><script type="text/javascript" charset="UTF-8" src="https://maps.gstatic.com/maps-api-v3/api/js/20/9/intl/fr_ALL/stats.js"></script></head>
<body>
<input type="text" id="auto">
<script src="https://maps.googleapis.com/maps/api/js?libraries=places&amp;key=AIzaSyBb1BipElNZJQPhdkSUdX5DxZpPnQV_D3k"></script><script src="https://maps.gstatic.com/maps-api-v3/api/js/20/9/intl/fr_ALL/main.js"></script><script src="https://maps.gstatic.com/maps-api-v3/api/js/20/9/intl/fr_ALL/places.js"></script>
<script>
    var autocomplete = google.maps.places.Autocomplete(document.getElementById("auto"));
</script>
</body>
</html>

错误与之前相同:

Uncaught TypeError: this[Lb] is not a function
(anonymous function) @ VM140:1
(anonymous function) @ main.js:16
hg @ main.js:28
(anonymous function) @ VM149:35
Kh.controls @ VM147:170
(anonymous function) @ main.js:39
(anonymous function) @ main.js:27
(anonymous function) @ main.js:27
(anonymous function) @ main.js:27
dg @ main.js:28
$f.(anonymous function).F @ main.js:27
(anonymous function) @ places_impl.js:1

错误来自places API,所以我想我正确加载了该服务。

1 个答案:

答案 0 :(得分:0)

好的,那个人非常愚蠢......

我忘记了“新”!

var autocomplete = new google.maps.places.Autocomplete(document.getElementById("auto"));

我值得你的愤怒