2013-08-05 71 views
1

使用谷歌自動填充地址使用以下指令。該指令工作正常,但是當我清除自動填充字段時,place_changed事件不會觸發。我可以做些什麼來確保它在用戶刪除自動填充框中的值時觸發並清除字段?該AngularJS谷歌地方自動填寫清除字段

「當用戶從附加到文本字段的預測中佔有一席之地,該服務就會觸發place_changed事件:

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()); 
       }); 

      }); 
     } 
    }; 
}); 

回答

0

谷歌地圖文件說,關於「獲取地方信息」(https://developers.google.com/maps/documentation/javascript/places)。 Places服務還會返回一個PlaceResult對象,可以通過調用Autocomplete對象上的getPlace()來訪問它。「

所以我明白,如果用戶清除輸入框,所以任何預測返回,因爲它是空白的,該事件將不會被調用。

如果你想從DOM中讀取數值,那麼你就應該實現的功能,並把它添加到ngModelController變量$解析器陣列,你的情況,命名爲model