Konvertiert eine AngularJS-Funktion in den Dienst

7

Ich habe die folgende Funktion, die ich in einen Dienst konvertieren möchte.

Wie würde ich den $ Ressourcen-Aufruf in einen AngularJS-Dienst extrahieren und wie würde ich diesen Dienst nennen?

%Vor%

Danke!

    
Deyang 06.04.2012, 13:46
quelle

2 Antworten

18

Ich vermute, dass Sie mit Version 0.9.19 arbeiten. Ich würde vorschlagen, dass Sie zu Version 1.0rc4 übergehen. Version 1.0 ist kurz vor dem Start und ist stabil, hat aber viele Änderungen gegenüber Version 0.9. Sie können die eckige Dokumentation für weitere Informationen sehen.

In v1.0 wird alles in ein Modul eingebunden: Controller, Dienste, Anweisungen und so weiter. Erstellen Sie ein Modul wie folgt:

%Vor%

In Version 1.0 wird der Ressourcen-Service in eine eigene Klasse ausgegliedert, daher müssen Sie ihn als Abhängigkeit angeben. Dort finden Sie auch die Ressource js Datei in Ihrer Anwendung enthalten müssen.

Um einen Service zu erstellen, können Sie einfach die Modul-API verwenden. In diesem Fall:

%Vor%

Beachten Sie, dass die Abhängigkeit von $ resource von angular injiziert wird.

Persönlich mag ich es nicht, mich mit dem Scope in meinem Service herumzuschlagen, also würde ich folgendes in meinem Controller haben:

%Vor%

Beachten Sie, dass in v1.0 der Bereich auch in den Controller injiziert wird, so dass kein self mehr verwendet werden kann. Außerdem habe ich mir erlaubt, anzunehmen, dass der selectedPlayer nur die Felder vom Player enthalten würde, also habe ich den Player gerade über den ausgewählten Player geschrieben. Sie können es auch Feld für Feld manuell ausführen oder angular.extend($scope.selectedPlayer, player); verwenden, um die beiden Objekte zusammenzuführen.

Hier ist eine Geige: Ссылка

    
Pete BD 07.04.2012, 04:55
quelle
11
%Vor%     
Misko Hevery 07.04.2012 04:43
quelle

Tags und Links