我正在使用Google Maps JavaScript API v3在我的角度/节点应用中自动填充文本输入。
我遇到的问题是,出于某种原因,我的角度函数使用的是原始类型文本,而不是填充到文本输入中的所选谷歌地方自动填充文本。
这是发生的事情(在图片中!):
1)输入我正在寻找的地方的开头
2)点击自动填充地点,填写文字输入
3)我在Google Places API调用中使用的字符串是第一步的原始“siz”,而不是自动填充的地方信息,这会返回错误的地方
以下是我认为与此问题相关的代码:
来自main.html:
<form class="form-horizontal" role="form">
<div class="input-group">
<input ng-model="businessName" googleplace class="form-control input-lg">
<span class="input-group-btn">
<button ng-click="findGPlace2()" class="btn btn-default" type="button">Find!</button>
</span>
</div><!-- /input-group -->
来自Google.js控制器(此示例中console.log($scope.businessName);
正在打印siz
):
$scope.findGPlace2 = function() {
console.log($scope.businessName);
GoogleService.findPlace2($scope.businessName).then(function(data) {
$scope.gPlace2 = data;
// for(var i = 0; i < data.results.length; i++) {
// console.log(data.results[i]);
// }
showGData(data.results[0].place_id);
});
};
来自App.js(自定义自动完成指令):
analyticsApp.directive('googleplace', function() {
return {
require: 'ngModel',
link: function(scope, element, attrs, model) {
var options = {
types: [],
componentRestrictions: {}
};
scope.gAuto = new google.maps.places.Autocomplete(element[0], options);
google.maps.event.addListener(scope.gPlace, 'place_changed', function() {
scope.$apply(function() {
model.$setViewValue(element.val());
});
});
}
};
});
答案 0 :(得分:2)
您的googleplace
指令一定有问题。
检查this fiddile。它可能对你有帮助
scope.gAuto = new google.maps.places.Autocomplete(element[0], options);
这应该是
scope.gPlace = new google.maps.places.Autocomplete(element[0], options);
我认为应该这样做。