Angenommen, ich eine Ressource wie folgt aufgebaut:Wie sende ich URL-Vorlage Parameter mit Anfrage Körper in eckigen?
resource = $resource(
"http://foo.com/service/:type/:id",
{},
{save: {method:'PUT', params: {type:'@type', id: '@id'}}}
);
resource.save({type:'user', id:14, name:'Bob Dole'});
Gibt es eine Möglichkeit, type
und id
davor eingereicht als Teil des Antrags Körper verhindern kann, und name
in der PUT Nutzlast nur senden? Ich kontrolliere nicht die API, an die ich mich bewerbe, und es scheint die zusätzlichen Parameter nicht zu mögen, die ich es sende.
Danke!
aktualisieren - 10/25/13 - 13:38
Die Dokumentation für resource sagt dies:
Wenn der Parameterwert mit @ dann der Wert dieses Parameters vorangestellt wird extrahiert aus dem Datenobjekt (nützlich für Nicht-GET-Operationen).
Das bedeutet, dass diese sollten die Parameter aus den Daten entfernen:
resource.save({type:'@user', id:'@14', name:'Bob Dole'});
, aber es scheint nicht zu funktionieren. Immer noch ratlos.
Dies ist eine große Rate; aber bei Verwendung von $ HTTP; Sie können eine Transformationsfunktion hinzufügen, um die Anfrage zu ändern. Kannst du dasselbe mit $ resource machen? – JeffryHouser
Danke - das funktioniert! Siehe oben für meine Lösung. Die Dokumente erwähnen jedoch einen einfacheren Weg, der funktionieren sollte, aber nicht. –
Sie sollten Ihre Lösung als eine formelle Antwort veröffentlichen [AKA Beantworten Sie Ihre eigene Frage]. Es wird Leuten helfen, die in der Zukunft finden. – JeffryHouser