J'ai besoin dans une application angularjs page unique d'une saisie semi-automatique google-lieux, qui doit fonctionner comme un service et doit être initialisé une fois à l'exécution. En cas de navigation, l'élément initialisé goolge-places et la portée appropriée sont détruits. Je vais réutiliser le champ de saisie des lieux après avoir navigué jusqu'à la page contenant le champ de saisie de saisie semi-automatique des lieux. Avec la méthode element.replaceWith()
cela fonctionne bien.ré-utiliser google-lieux saisie semi-automatique saisie après la navigation de la page
Après avoir remplacé l'élément, je ne peux pas réinitialiser l'entrée par le bouton « reset ». Comment puis-je lier la nouvelle portée générée au bouton "reset" et aux anciennes variables de portée. Parce que l'ancien périmètre et les éléments sont détruits par l'événement de navigation?
.factory('myService', function() {
var gPlace;
var s, e;
var options = {
types: [],
componentRestrictions: {country: 'in'}
};
function init() {
}
function set(element, scope) {
console.log('set');
if (!gPlace) {
e = element;
gPlace = new google.maps.places.Autocomplete(element[0], options);
google.maps.event.addListener(gPlace, 'place_changed', function() {
scope.$apply(function() {
scope.place.chosenPlace = element.val();
});
});
} else {
element.replaceWith(e);
}
}
init();
return {
'init':init,
'set':set
};
});
la navigation (élément et la portée destruction) sera simulé dans cette Plunk par la directive ng-if
qui sera déclenchée par le bouton « supprimer ».
grâce à l'aide, mais je ne vais pas enregistrer la dernière place. Je dois réutiliser les entrées entrées sans initialisation répétée à chaque fois. – usher