0
私は場所を埋めるためにgoogle-placeディレクティブを使用しています。それはオートコンプリートの結果を示していない。すなわち、google-place autocomplete指令は、1つのページで2回使用されても機能しません。
app.directive('googlePlaces', function(){
return {
restrict:'E',
replace:true,
scope: {location:'='},
template: '<input id="google_places_ac" name="google_places_ac" type="text" class="form-control area_input transition" />',
link: function($scope, elm, attrs){
if(attrs.city =='cities'){
var options = {
types: ['(cities)'],
componentRestrictions: {country: 'IN'}
}
}
else{
var options = {
componentRestrictions: {country: 'IN'}
}
}
var autocomplete = new google.maps.places.Autocomplete($("#google_places_ac")[0], options);
google.maps.event.addListener(autocomplete, 'place_changed', function() {
var place = autocomplete.getPlace();
if(attrs.city =='cities'){
$scope.location = $("#google_places_ac")[0].value + '"' +place.geometry.location.lat() + '"' + place.geometry.location.lng();
}
else{
$scope.location = place.geometry.location.lat() + ',' + place.geometry.location.lng();
}
$scope.$apply();
});
}
};
});
<google-places class="form-control location_field" location="location" city='cities' latlngs = "latlngs" ng-model="chosenPlace"></google-places>
しかし、私は、単一のページ上でそれを2回使用する必要があるため、第二指令は動作しません:私は使用していますディレクティブは、後述されます。 誰でもこの問題を解決するのに手伝ってください。ヘルプは非常に高く評価されます。
私はangularjについてあまりよく知られていませんが、 'autocomplete1'や' autocomplete2'のような2つの変数IDを作成してみることができます。これにより、他のオートプレインインスタンスを上書きすることなく、複数のオートコンプリートを初期化することができます。実装については、SO [20416058](http://stackoverflow.com/a/20416328/5995040)を参照してください。より動的な例については、try [this](http://stackoverflow.com/a/28027112/5995040)を参照してください。 –