2009-08-02 7 views
0

Flex3 + Cairngorm verwenden. Ich habe meinen Dienst in Servicis.mxml:Parameter an HTTPService übergeben und sie innerhalb der URL

<mx:HTTPService id="docIndex" url="{URL_PREFIX}/jobs/{???}/docs" resultFormat="e4x"/> 

Und ich nenne es von meinem generic geruhsamen Delegat wie folgt aus:

public function index(params:Object):void { 
     var call:AsyncToken = services.getHTTPService(resourceName+"Index").send(params); 
     call.addResponder(responder); 
    } 

Ich möchte wissen, wie ich das params-Objekt verwenden können, die ich in den Pass URL-Definition (das ??? oben). Und bitte sagen Sie mir, wie Sie in der Dokumentation nach einer Antwort suchen würden, ich wäre gerne ein bisschen unabhängiger für diese Probleme ...

EDIT: Ich erkläre mich, wenn Sie es nicht getan haben verstehe mein Problem: Ich habe eine ruhige api in Schienen geschrieben, die ich verbinde. Doc ist eine untergeordnete Ressource von Job. Wenn ich alle Dokumente erhalten möchte, muss ich auch eine Job-ID angeben. Daher muss die URL in dem Dienst für jeden .send() - Aufruf mit der richtigen Job-ID (der ??? Teil oben) geändert werden. Ich möchte es wie myDelegate.index ({job_id: 34}) nennen und das Feld job_id in die Service-URL einfügen.

+0

Es ist wirklich nicht sehr offensichtlich, welche Art von Verhalten Sie hier suchen. Kannst du bitte klarstellen, wie {???} in Bezug auf den Inhalt des params-Objekts aussehen soll? Nicht wie man das macht, denn das hat dich hierher gebracht, aber das Warum. –

+0

ok: ich habe ein ruhiges api geschrieben in schienen an denen ich anschließe. Doc ist eine untergeordnete Ressource von Job. Wenn ich alle Dokumente erhalten möchte, muss ich auch eine Job-ID angeben. Daher muss die URL im Service für jeden .send() - Aufruf mit der richtigen Job-ID (dem ??? -Teil) geändert werden. Ich würde es gerne myDelegate.index ({job_id: 34}) nennen und dieses job_id Feld in die Service URL einfügen. ist es jetzt klarer? – luca

Antwort

0

Schreiben Sie eine Klasse, die HTTPService erweitert, und ermöglicht das Festlegen von Parametern in der URL. Dann können Sie es in Ihrer Indexfunktion mit services.getHTTPService abrufen und eine von Ihnen erstellte Funktion aufrufen, die die URL-Werte für Sie festlegt.

Erstellen Sie in Ihrem Service-Locator eine Instanz Ihrer Klasse statt eines flachen HTTPService.

+0

Ich werde versuchen .. meinst du, dass getHTTPService auch mit meiner Kindklasse funktioniert? – luca

+0

Ja, sollte es, weil Ihr http-Dienst immer noch ein HTTPService ist –

Verwandte Themen