Scope-Problem

blindmind

Mitglied
Hallo Zusammen.

Ich hab folgende Funktion:

Code:
var MapController = function(geoService) {
		console.log("init MapController");
		this.geoService = geoService;
		this.latitude = null;
		this.longitude = null;
		
		var _controller = this;
		
		var positionSuccess = function(position) {
			_controller.latitude = position.coords.latitude;
			_controller.longitude = position.coords.longitude;
		};
		
		this.geoService.getCurrentPosition(positionSuccess);
		console.log(this.latitude);
		console.log(this.longitude);
};

Mein Problem ist, das ich die Werte von latitude und longitude in der Callback-Funktion an den Controller binden möchte, quasi als "Instanzvariable". Leider funktioniert das nicht nicht, bei der Ausgabe sind beide Werte noch immer null. Hab auch schon gegoogled, aber bisher nix gefunden.

Weiß jemand wie ich das Problem lösen könnte? Hab leider von JavaScript kaum Ahnung und weiß daher nicht mehr weiter..

Vielen Dank im Voraus******!

Markus
 
Und du bist dir sicher, dass zum Zeitpunkt deiner Ausgabe die Position bereits ermittelt wurde? Das kann ja durchaus mehrere Sekunden dauern.
 
Hey, Danke für die Antwort.
Hmm, müsste eigentlich....Da der Callback positionSuccess vor der Ausgabe aufgerufen wird, und in diesem die Werte gesetzt werden sollten...
 
Hmm, müsste eigentlich....Da der Callback positionSuccess vor der Ausgabe aufgerufen wird, und in diesem die Werte gesetzt werden sollten...

Der Aufruf ist asynchron und kann wie gesagt auch erst eine Minute später erfolgen. Mach ein `console.log` in positionSuccess und du wirst sehen, dass es nach der anderen Ausgabe passiert.
 

Neue Beiträge

Zurück