Załóżmy, że mam zasób skonfigurować tak:Jak nie przesłać parametrów szablonu adresu URL z ciałem żądania w kanoncie?
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'});
Czy jest jakiś sposób mogę zapobiec type
i id
przed przedłożone jako część ciała żądanie, i po prostu wysłać name
w zawartości umieścić? Nie kontroluję interfejsu API, który przesyłam, i wydaje się, że nie podoba mi się dodatkowe parametry, które wysyłam.
Dzięki!
Aktualizacja - 25.10.13 - 13:38
Dokumentacja resource mówi tak:
Jeśli wartość parametru jest poprzedzona @ wówczas wartość tego parametru jest pobierany z obiektu danych (przydatne w przypadku operacji innych niż GET).
Oznacza to, że powinien usunąć parametrów z danymi:
resource.save({type:'@user', id:'@14', name:'Bob Dole'});
ale nie wydają się działać. Wciąż ze stratą.
To spora domena; ale przy użyciu $ HTTP; możesz dodać funkcję transformacji, aby zmodyfikować żądanie. Czy możesz zrobić to samo z $ resource? – JeffryHouser
Dzięki - to działa! Zobacz wyżej dla mojego rozwiązania. Jednak dokumenty wspominają o łatwiejszym sposobie, który powinien zadziałać, ale nie działa. –
Powinieneś opublikować swoje rozwiązanie jako formalną odpowiedź [AKA Odpowiedz na własne pytanie]. Pomoże to ludziom, którzy odnajdą się w przyszłości. – JeffryHouser