Ich habe einen Registrierungsmechanismus, in dem die rootscope-Variable über den Dienst gesendet wird. Nach dem Erfolg wird das Feld $rootScope.success
aktualisiert. Die angularjs-Dienste sind jedoch Callback-abhängig. Der Dienst aktualisiert rootscope.success, aber die Funktion führt den Code sequenziell aus.
Wie warte ich darauf, dass der Dienst seine Antwort vervollständigt und dann weiter verarbeitet?
%Vor%Und im Service
%Vor% Sie möchten Ihre $http
-Anfrage von registerUser zurückgeben, die dann in Ihrem Controller auf die gleiche Weise verwendet werden kann, wie Sie sie im Service verwenden.
Controller:
%Vor%Service:
%Vor%Ein paar Dinge, die es wert sind, erwähnt zu werden ...
Sie kehren von einem Service zurück, der nicht benötigt wird, ein Service funktioniert als Instanz und die Instanz ist bereits injiziert. Es ist eine Factory (Singleton), die eine Rückgabe erfordert.
Sie setzen $scope.registration
auf $rootScope.registration
und setzen $rootScope.registration
auf $scope.registration
in Ihrer getEnterGeneratedCode
Funktion, was nicht notwendig ist und trotzdem prototypisch vererbt werden sollte.
Sie sollten immer versuchen, Abhängigkeiten mit wie folgt zu definieren:
%Vor% Wenn $rootScope.success
nicht an anderer Stelle verwendet wird, ist es momentan sinnlos, sie zu setzen, und ich würde empfehlen, Requisiten auf Ihrem $ rootScope zu setzen, da es schnell außer Kontrolle geraten kann.
Hier ist eine vereinfachte Version Ihres Codes:
%Vor%Verwenden Sie ein Versprechen - siehe unten:
%Vor%Und im Service
%Vor%Tags und Links javascript angularjs callback