2012-11-09 10 views

Odpowiedz

7

powiedzmy masz zasób tak:

var User = $resource('/user/:userId', {userId:'@id'}); 
var user = User.get({userId:123}); 

Oznacza to, że wartość :userId w adresie URL zostanie zastąpiony nieruchomości od obiektu użytkownika id gdy wymagane jest, że własność.

Kiedy jest to wymagane? Jest to wymagane, gdy robisz coś dla istniejącego użytkownika, na przykład je aktualizujesz. Nie jest wymagane, gdy tworzysz użytkownika.

W większości przypadków będziesz chciał mieć co najmniej jeden parametr poprzedzony @ w URL-u REST, którego używa zasób (prawdopodobnie identyfikator obiektu). Jeśli go nie masz, oznacza to, że aby zapisać instancję obiektu, nie musisz nic wiedzieć o jego przechowywaniu. Oznacza to, że jest to obiekt singletonowy. Może jak obiekt ustawień.

Oto twój długo oczekiwany przykład:

var User = $resource('/user/:userId/:dogName', {userId:'@id', dogName:@dog}); 
User.get({userId:123, dog:'Matt'}, function() { .. }) 

będzie produkować żądania GET /user/123/Matt

+19

Ta odpowiedź (konkretnie przykład w nim) nie wyjaśnia cel „@id”. Lepsza odpowiedź znajduje się tutaj: [Co to jest @id jako przekazywane do $ resource?] (Http://stackoverflow.com/questions/17559515/what-is-id-as-passed-to-resource). – Stewie

+2

I popełnia ten sam błąd co dokumenty AngularJS, mówiąc takie rzeczy jak "... zostanie zastąpione właściwością id z obiektu użytkownika ..." Gdzie jest "identyfikator" w obiekcie użytkownika? –

+0

Zgodnie z linkiem @Stewie, domyślny parametr '@ id' to dlatego, że możesz zrobić' User.id = 123; 'i później' var user = User.get ({}); ' – Jaider

Powiązane problemy