Używam usługi Angular $resource
dla usługi REST. Ze względu na dziwne zachowanie, nie mogę użyć usługi $ resource dla aplikacji CRUD.
Tworzenie nowej pracy obiektu (powiedzmy na karcie), smilar do:
var newCard = new CreditCard();
newCard.name = "Mike Smith";
newCard.$save();
Get działa również:
var card = CreditCard().get({_id:1)
Ale odpowiedź GET nie jest przedmiotem Card
sama, ale inna wiadomość z nim (obiekt opakowujący)
, więc gdy zapiszę instancję wyszukiwania poprzez zasoby, wysyła obiekt opakowania (ze zmodyfikowanym obiektem Card w polu odpowiedzi). To prawdopodobnie poprawne, ale mój serwer oczekuje, że obiekt karty nie będzie opakowaniem. Czy istnieje sposób dostosowania zasobu $ tak, aby wysyłał żądany obiekt. Z dokumentu wygląda na to, że tylko parametry adresu URL można zmienić.
$resource(url[, paramDefaults][, actions]);
Czy możesz zamieścić pełny przykład na jsfiddle lub podobnym? Z mojego doświadczenia wynika, że w przypadku (zwykłego) CRUD nie jest konieczne tworzenie nowego obiektu w ten sposób. Co, jeśli po prostu uzyskasz dostęp do zasobu, np. $ Scope.card = Card.get ({_ id: 1), gdzie Card jest twoją usługą zasobów? Jeśli powiesz formularzowi, jaki jest twój model, instancja zostanie automatycznie wypełniona. – Narretz
Nie sądzę, że twoje problemy są w Angular. Brzmi prawie tak, jak twoja implementacja REST na serwerze ma pewne problemy. Nie powinien być dołączony do niej komunikat. Możesz to najpierw sprawdzić, aby upewnić się, że treść odpowiedzi jest tylko oczekiwanym obiektem. –
Serwer rzeczywiście wysyła opakowanie wokół rzeczywistego obiektu. Nadal istnieje sposób, aby wysłać tylko obiekt, gdy wysłać z powrotem na serwer (POST) – bsr