2013-08-05 3 views
1

다음 지시어를 사용하여 Google 지역 정보 자동 완성 기능을 사용합니다. 지시문은 정상적으로 작동하지만 자동 완성 필드를 지우면 place_changed 이벤트가 실행되지 않습니다. 사용자가 자동 ​​완성 상자에서 값을 삭제할 때 필드가 실행되고 필드가 지워지도록하려면 어떻게해야합니까?AngularJS Google 장소 자동 완성 삭제 입력란

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

Google지도 문서는 "얻기 장소 정보"(https://developers.google.com/maps/documentation/javascript/places)에 대해 말한다. 사용자가 텍스트 필드에 첨부 된 예상 검색어에서 장소를 선택하면

는 "서비스가 place_changed 이벤트를 발생 또한 Places 서비스는 PlaceResult 객체를 반환하며 Autocomplete 객체에서 getPlace()를 호출하여 액세스 할 수 있습니다. "

그래서 사용자가 입력 상자를 비우면 모든 예측이 비어 있기 때문에 해당 이벤트가 호출되지 않는다는 것을 알았습니다. 이름

는 DOM에서 값을 읽을하려는 경우, 당신은 함수를 구현해야하고 경우에, ngModelController 변수의 $ 파서 배열에 추가 model

관련 문제