Winklige verschachtelte Versprechen 'Nicht Lesen der Eigenschaft 'dann' undefined'
Ich bin Aufruf eines service innerhalb einer Fabrik, von einem controller. Der service ruft dann ein weiterer Dienst, der macht einen $http-request für einige json. Der erste service muss dann zum ändern der Daten aus dem json und sendet es an den controller. Ich kann nicht herausfinden, wie man die Daten zurück an den controller. Ich erhalte die Fehlermeldung " Cannot read property 'dann' undefined' über meine Verwendung von dann() innerhalb der $Umfang.getModifiedData Funktion in meinem controller. Die Steuerung wird wissen über die employeesFactory.modifyData () - Dienst, denn wenn ich entfernen Sie die Versprechen und dann die () - Funktionalität, es wird erfolgreich aufgerufen.
Habe ich diese: https://docs.angularjs.org/api/ng/service/$q
In meinem controller:
$scope.getModifiedData = function() {
var promise = employeesFactory.modifyData();
promise.then(function(modifiedData) {
console.log(modifiedData, 'modifiedData');
});
};
$scope.getModifiedData();
In meinem Werk:
var targetEmployeesAPI = 'http://sample.dev/api/employees.jsonp?callback=JSON_CALLBACK';
service.employeesRawData = function() {
var deferred = $q.defer();
$http({
method: 'JSONP',
url: targetEmployeesAPI
}).success(function(data) {
employeesRaw = data.employees;
deferred.resolve(employeesRaw);
}).error(function() {
deferred.reject();
});
return deferred.promise;
};
service.modifyData = function() {
var deferred = $q.defer();
service.employeesRawData()
.then(function(employeesRaw) {
//Do stuff: Modify data from service.employeesRawData()
//Eventually create object modifiedData
modifiedData = {};
if (modifiedData !== undefined) {
deferred.resolve(modifiedData);
} else {
deferred.reject('Rejected');
}
return deferred.promise;
});
};
InformationsquelleAutor maskedjellybean | 2014-12-07
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nur ersetzen.
auf
InformationsquelleAutor Igor Semin