Jeśli dobrze rozumiem to poprawnie i nie może, parametr {id: @id}
jest ilustracją innym sposobem podaj zmienną adresu URL przy pomocy fragmentu danych:
Biorąc pod uwagę tę metodę:
var myResource = $resource("/posts/:theName",
{theName: '@petName'},
{enter : {
method: "POST",
isArray: false
}
});
Jeśli mam atrybut „petname” w danych, że jestem delegowania, wartość tego atrybutu zostanie umieszczony w :theName
zmiennej w moim url. Wyobraź sobie, że dane o wpisie to {"petType": "cat", "petName": "Spot"}
, adres URL będzie oznaczać "/posts/Spot"
. Moim zdaniem, @
oznacza "atrybut" obiektu, który ma zostać wysłany.
Zabierz @
od tej wartości, a zmienna url będzie bezpośrednio odwoływać się do wartości w tym parametrze zasobów:
{theName: 'petName'} //no "@"
// url output ----> '/posts/petName'
.
Oto łańcuch odniesień:
//url var--> //$resource param {..} --->//Object to be posted
:theName---> {theName ----> @petName ---> {petName---> "Spot"
To tylko 5 kroków, aby dostać "Spot" w url!
.
Przykład przykład zasobów przy użyciu powyższego przykładu:
var postData = new myResource();
postData.petType = "cat";
postData.petName = "Spot";
postData.$enter({}, function(data){
$scope.data = data;
})
// url to post to will be '/posts/Spot', postData object will be
// {"petType":"cat", "petName:"Spot"}
Na marginesie, Dokumenty może być bardzo skomplikowane. Czy kiedykolwiek wybrałeś trudny kurs, a profesor był genialnym człowiekiem, który ledwo mówił w twoim języku? Tak.
+1 za ostatnią część: D. także uchwyt $ scope obiecuje bardzo dobrze – Ven
dzięki, myślę, że rozumiem ... wydaje się, że bardziej sensownym byłoby stworzenie "klasy" i odziedziczenie po zasobach ... to prawie jak zmienna składowa, ale może to też jest mroczne – James
Cała sprawa jest mroczna. Istnieje około 4 różnych miejsc, w których można dodać parametry adresu URL. Kiedy piszę zasób, robię to tak prostym i małym, jak to tylko możliwe. Wszystko duże i używam $ http. Ale to tylko ja ... – rGil