Wie behandelt man den Rückruf in angularjs?

8

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%     
Hassaan Khan 07.01.2015, 09:23
quelle

2 Antworten

6

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%     
Simon Staton 07.01.2015, 09:26
quelle
-1

Verwenden Sie ein Versprechen - siehe unten:

%Vor%

Und im Service

%Vor%     
Peter Ashwell 07.01.2015 09:27
quelle

Tags und Links