AngularJS google places自动完成清除字段
我使用谷歌位置自动完成以下指令。该指令工作正常,但当我清除autocomplete字段时,place\u changed事件不会触发。当用户删除“自动完成”框中的值时,如何确保它触发并清除字段AngularJS google places自动完成清除字段,angularjs,google-places-api,Angularjs,Google Places Api,我使用谷歌位置自动完成以下指令。该指令工作正常,但当我清除autocomplete字段时,place\u changed事件不会触发。当用户删除“自动完成”框中的值时,如何确保它触发并清除字段 app.directive('googleplace', function() { return { require: 'ngModel', scope:{place : '='}, link: function(scope, element, attrs, mod
app.directive('googleplace', function() {
return {
require: 'ngModel',
scope:{place : '='},
link: function(scope, element, attrs, model) {
var options = {
types: []
};
scope.gPlace = new google.maps.places.Autocomplete(element[0], options);
google.maps.event.addListener(scope.gPlace, 'place_changed', function() {
scope.place = scope.gPlace.getPlace();
scope.$apply(function() {
model.$setViewValue(element.val());
});
});
}
};
});
谷歌地图文档中提到了“获取地点信息”(Getting Place Information)(): 当用户从附加到文本字段的预测中选择一个地点时,服务将触发一个地点更改事件。地点服务还返回一个地点结果对象,可通过调用自动完成对象上的getPlace()来访问该对象 所以我理解如果用户清除输入框,那么任何预测都会返回,因为它是空的,所以不会调用该事件 如果您想从DOM中读取值,那么应该实现一个函数,并将其添加到
ngModelController
变量的$parsers数组中,在您的示例中,该变量名为model