Konvertieren einer AngularJS-Funktion service
Habe ich die folgende Funktion, die ich umwandeln möchte, um einen Dienst.
Wie kann ich das machen das extrahieren $resource Aufruf in einem AngularJS-service, und wie würde ich den Dienst?
self.select = function (email) {
var Player = $resource('/player/get',{email:email});
var player = Player.get(function() {
self.selectedPlayer.email = player.email;
self.selectedPlayer.fuel = player.fuel;
self.selectedPlayer.cargo = player.cargo;
self.selectedPlayer.food = player.food;
});
}
Dank!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich vermute, dass Sie arbeiten, ab version 0.9.19. Ich würde zuerst vorschlagen, dass Sie den übergang zu version 1.0rc4. Version 1.0 ist in der Nähe zum going live und ist stabil, aber es hat viele wichtige änderungen gegenüber version 0.9. Sehen Sie die Winkel-Dokumentation für weitere Informationen.
In v1.0 wickeln Sie alles in ein Modul: Controller, services, Direktiven und so auf. Erstellen Sie ein Modul, etwa so:
In der version 1.0 der resource service ist factored in seine eigene Klasse, so haben Sie zu geben, es ist wie eine Abhängigkeit. Sie wird auch die Ressource js - Datei in Ihrem app.
Erstellen wir nun einen service, den Sie verwenden einfach die Modul-API. In diesem Fall:
Beachten Sie hier, dass die Abhängigkeit von $resource injiziert durch eckige.
Ich persönlich mag es nicht zu Durcheinander mit den Rahmen in meinem Dienst, so würde ich folgende in meinem controller:
Beachten Sie, dass in v1.0 der Anwendungsbereich ist auch der Injektion in den controller, so dass keine Verwendung von selbst mehr. Auch ich nahm mir die Freiheit anzunehmen, dass die selectedPlayer würde enthalten nur die Felder, die vom Spieler, also schrieb ich den Spieler direkt über die top-selectedPlayer. Sie könnten auch tun es Feld für Feld manuell ein oder verwenden Sie
angular.extend($scope.selectedPlayer, player);
Zusammenführung der beiden Objekte.Hier ist ein Turnschuh: http://jsfiddle.net/DukvU/