TypeError: Cannot read property 'Erfolg' von undefined

Ich bin momentan dabei, einen service für die Rückgabe der Koordinaten einer Position. Aber ich brauche eine Möglichkeit, um einen Wert zurückzugeben.

angular.module('google.maps', [])
.factory('geocode', ['$http', 'GOOGLE_MAPS_CREDENTIALS', function ($http,GOOGLE_MAPS_CREDENTIALS) {
    return {
        getCoords: function(addr1, zip) {
            $http.get('https://maps.googleapis.com/maps/api/geocode/json?address='
                +encodeURIComponent(addr1+','+zip)+'&sensor=false'
                +'&key='+GOOGLE_MAPS_CREDENTIALS.API_KEY);
        }
    }
}])
.value('GOOGLE_MAPS_CREDENTIALS', { API_KEY: '_____________' });

Danach habe ich einen controller der diese Funktion aufrufen, die als solche:

.controller('AddrNewCtrl', ['$scope','$state','$stateParams','geocode','$rootScope','Address',
    function($scope, $state, $stateParams, geocode, $rootScope, Address) {
    $scope.address = {
        userId: {"__type":"Pointer","className":"_User","objectId":$rootScope.user.id}
    };
    $scope.create = function() {
        geocode.getCoords($scope.address.address1, $scope.address.zipCode)
        .success(function(data) { //<-- this is where the console error is.
            var lat = data.results[0].geometry.location.lat;
            var lng = data.results[0].geometry.location.lng;
            $scope.address.location = new Parse.GeoPoint({latitude:lat,longitude:lng});
        });
        Address.create($scope.address)
        .success(function(data) { $state.go('tabs.address-list'); });
    };
}])

Das problem ist, dass wenn ich Anruf Erfolg, ich bekomme einen TypeError:

TypeError: Cannot read property 'success' of undefined

Gibt es wenig Unterschied zwischen dem, wie ich diese umsetzen Dienst oder jeder andere Dienst, und wenn ich console.log die Daten und Ergebnisse in meinem $http.get() Funktion, bekomme ich alle Werte, die ich erwarte, wenn ich zum aufrufen der Funktion in der Steuerung.

Ich bin auf der Suche nach zwei Antworten:

  1. Warum ist die success callback-Rückkehr ein Fehler?
  2. Wie kann ich einfach wieder die ein Koordinaten-Objekt aus, wenn ich rufen meinen geocode service?
  • Es ist nicht der "Erfolg" callback selbst, das ist das Thema der Fehler. Der Fehler bedeutet, dass die getCoords() Aufruf nicht wieder alles.
  • Sie sind nicht wieder ein Versprechen auf getCoords, sollten Sie return $http.get
  • Wow, vielen Dank. Dass es behoben @Pointy , fühlen Sie sich frei zu setzen, die in eine Antwort und ich gebe dir creds für Sie.
InformationsquelleAutor Caleb Faruki | 2014-12-09
Schreibe einen Kommentar