Erhalte JSON-Daten mit AngularJS und füge Methoden zum zurückkehrenden Objekt hinzu

9

Ich muss einige JSON-Daten vom Server mit Angular erhalten. Sagen wir die Benutzerdaten. Ich habe einen Service wie diesen geschaffen:

%Vor%

Und in meinem Controller:

%Vor%

Das funktioniert ganz gut, aber was, wenn ich dem Benutzer einige Methoden hinzufügen möchte? Zum Beispiel in der Ansicht möchte ich {{user.isAdmin()}} machen. Ist es der richtige Ansatz? Wo kann ich diese Methoden hinzufügen?

    
Gpx 10.10.2013, 14:23
quelle

2 Antworten

3

Wenn Sie möchten, dass Ihr Dienst immer ein Objekt mit dieser Methode zurückgibt, tun Sie etwas wie folgt:

%Vor%

Jetzt wird jeder zukünftige Code, der auf dieses Versprechen verweist und. then () verwendet, das neue Objekt abrufen. Weitere Informationen finden Sie in der Dokumentationsdokumentation.

Ссылка . $ q

Denken Sie daran, indem Sie 'then' auf einem httpPromise verwenden, wird es in ein normales Versprechen umgewandelt. Sie haben nicht mehr die Bequemlichkeit Methoden "Erfolg" und "Fehler".

Es kann besser sein, eine Klasse für das zurückzugebende Objekt mit einer Konstruktorfunktion zu erstellen, die das Datenobjekt übernimmt und entsprechende Eigenschaften zuweist (oder die Instanz erweitert). Auf diese Weise können Sie einfach etwas wie

tun %Vor%

Und Sie erhalten alle gewünschten Methoden (mit einem Prototyp usw.).

    
Adam 10.10.2013, 14:29
quelle
0

Sie können dies in dem von Ihnen erstellten Service auf verschiedene Arten tun:

  1. Beginne mit $ resource und verwende eine Transformation für die Antwort:
    Ссылка ...

    transformResponse: Funktion (Daten, Header) {

    %Vor%

... Ich empfehle diese Methode, weil sie aufgrund der Verwendung von $ resource sauberer skaliert.

  1. Richten Sie eine transformResponse mit $ http ein: Ссылка

  2. Verwenden Sie Ihr eigenes Versprechen, das aufgelöst wird, nachdem das get-Versprechen aufgelöst wurde, aber mit den zugeordneten Daten. Dies ist wahrscheinlich der am meisten manuelle Weg, um damit umzugehen, da Sie mehrere Versprechungen verwalten müssen.

Erstad.Stephen 10.10.2013 14:55
quelle

Tags und Links