2016-04-03 11 views
0

i eine Funktion zu erstellen, versuchen die Position Wert, um es all Shared-Service unter Verwendung der Komponenten zu passieren ist meine ngOnInit FunktionTyposkript Logik Problem mit Winkel 2 und Google Maps api

this.input = document.getElementById('google_places_ac'); 
     var autocomplete = new google.maps.places.Autocomplete(this.input, { types: ['(cities)']}); 
     google.maps.event.addListener(autocomplete, 'place_changed', function() { 
      var place=autocomplete.getPlace(); 
      this.setValue(place.address_components[3].long_name, place.address_components[2].long_name, place.address_components[1].long_name); 

     }); 

das Problem ist, dass es this.setvalue Funktion nicht erkennt, die Wert mit meinem geteilten Dienst teilt oder irgendeine Variable mit this.variable, sein Javascript "dieses" Problem. und ich kann nicht sogar diese Funktion mit meinem Konstruktor arbeiten, es wirft einen Fehler bei getElmentById.

gibt es Lösungen mit Pfeil Funktionen und alle, aber ich weiß nicht, wie es in diesem Zustand zu verwenden, damit Sie mir bitte helfen ..

Antwort

1

Innerhalb des place_changed -callback das Stichwort this verweist auf die automatische Vervollständigung-Instanz.

Sie benötigen einen Verschluss zu schaffen:

var instance = this, 
    autocomplete; 
instance.input = document.getElementById('google_places_ac'); 
autocomplete = new google.maps.places.Autocomplete(instance.input, { 
        types: ['(cities)']}); 

google.maps.event.addListener(autocomplete, 'place_changed', function() { 
    var place=this.getPlace(); 
    instance.setValue(place.address_components[3].long_name,   
        place.address_components[2].long_name, 
        place.address_components[1].long_name); 
}); 
+0

var Instanz = this; funktioniert, ich erhalte keine Fehler, aber es werden keine Werte aktualisiert, sollte ich eine neue Frage erstellen oder sollte ich die Frage mit meiner SharedService-Funktion aktualisieren? – Ironsun

+0

Hallo, ich habe neue Frage erstellt, wenn Sie mir helfen können, es wird toll sein http://StackOverflow.com/Questions/36387480/value-not-updating-in-the-view-after-data-update-angular2-and -Typoskript – Ironsun