在angular指令中出现谷歌地图API错误
Error from google maps API when in an angular directive
我试图创建一个简单的角指令,其中添加谷歌地图的地方搜索框的输入。参见Google Developers上的这个例子。我甚至不需要地图,只需要搜索框。
指令成功运行(搜索框对象的控制台打印成功),但在它运行后,我在控制台上得到一个错误,输入不起作用。控制台的错误是Uncaught TypeError: undefined is not a function
.
只是为了确定,我在它旁边使用另一个指令,它使用jquery-ui初始化了一个日期选择器。这似乎很好。
HTML:<html ng-app="events">
<body>
<h1>Hello Plunker!</h1>
Date:
<input type="text" datetime-input="format" />
<br>
Location:
<input type="text" location-input="format" />
</body>
</html>
JS:
var events = angular.module('events', []);
events.directive('locationInput', function() {
function link(scope, element, attrs) {
scope.searchBox = new google.maps.places.SearchBox(element);
console.log(scope.searchBox);
}
return {
link: link
};
});
events.directive('datetimeInput', function() {
function link(scope, element, attrs) {
$(element).datepicker();
}
return {
link: link
};
});
查看我创建的Plunkr
为什么会出现错误?我做错了什么?
问题是元素不是回调的正确格式,您必须执行element[0]
。之后,您必须附加一个侦听器。你的代码看起来像这样:
scope.searchBox = new google.maps.places.SearchBox(element[0]);
google.maps.event.addListener(scope.searchBox,'places_changed',function(){
var places = searchBox.getPlaces();
for(var i =0, place;place=places[i];i++){
console.log(place.icon+':'+place.name+':'+ place.geometry.location);
}
})
相关文章:
- 谷歌地图API v3不适用于移动浏览器或PhoneGap
- 标记的实时更新,无需加载页面谷歌地图API V3
- 覆盖在赢得'不允许点击下面的标记,谷歌地图api v3
- 谷歌地图Api和JS代码不工作
- 谷歌地图API-InfoBubble赢得't关闭-关闭()不会'不起作用
- 如何在多承诺链中处理谷歌地图API V3事件
- 谷歌地图api和gMapsLatLonPicker
- 谷歌地图API-“;toGeoJson”;返回几何体为null的对象
- 谷歌地图API v3:Initial View is Fine,but Gray Box with No Map if
- 为什么谷歌地图API's方法未从RequireJS中正确调用
- 使用谷歌地图api计算距离并将其设置在表格中<td>
- 使用谷歌地图API和phonegap显示当前位置+方向
- 使用谷歌地图api v3自动完成字段(法国大道、邮编、城市)
- 谷歌地图API标记没有标记我的位置
- 使用谷歌地图api 3为MapTypeId.TERRAIN分离按钮
- 在JQuery中使用谷歌地图Api事件/侦听器
- 在Ionic应用程序上使用$.getScript加载谷歌地图Api
- 我该如何解决“;未捕获引用错误:谷歌没有定义"?(谷歌地图API)
- 谷歌地图API-显示具有不同图标的标记
- 如何停止地图移动时,鼠标悬停在标记在谷歌地图API 3