Ich habe einen eckigen Service, um meine Versprechen zu halten, aber ich bin mir nicht sicher, wie die Werte auf $ Scope von innerhalb des Dienstes zu manipulieren. Ich verstehe, was ich mache, ist falsch, verstehe aber nicht, was ich tun muss, um richtig zu sein.angular service nicht Werte wie erwartet manipulieren
In meinem Dienst:
.service('resolvePromiseService', function(){
var publicInterface = {
resolvePromise: resolvePromise
}
function resolvePromise(promise, resultObject, callBackFunction, spinner){
spinner ++;
promise.then(function(result){
resultObject = result;
if(callBackFunction){
callBackFunction();
}
});
promise['catch'(function(error){
//generic error handling
});
promise['finally'(function(){
spinner--;
});
}
und in meinem Controller, die den Dienst
var getInfoPromise = dataAccessService.getInfoByLocationId(locationId).$promise;
resolvePromiseService.resolvePromise(getInfoPromise, $scope.locationInfo, $scope.setUpLocation, $scope.loadingSpinner);
Innerhalb der resolvePromise Funktion aufruft, ich sehe die Werte wie erwartet kommen und aktualisiert werden wie erwartet, aber ich denke, ich missverstände die Art, wie $ scope herumgereicht wird. Ich glaube, ich ersetze die eckigen Objekte durch Vanille Javascript Objekte.
JavaScript hat eine 'return' Aussage. Weitere Informationen finden Sie unter [MDN-JavaScript-Referenz - Rückgabeanweisung] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/return). Verwenden Sie es, um alle Faltungen mit Rückrufen zu vermeiden. – georgeawg
@georgeawg unglaublich hilfreich, danke –