2013-07-09 24 views
53
$resource("/entries/:id", {id: "@id"}, {update: {method: "PUT"}}) 

@id?

$ kaynağında doc page birisi bunu söylüyor, ama hala anlamıyorum.

parametre değeri bu parametrenin değerinin @ öneki Eğer veri nesnesi elde edilir (için yararlı olmayan GET işlemleri)." Veriler burada nesne olmayan halinde postData nesneyi belirtir -al "sınıfı" eylem kullanılır, ya da, örneğin kendisi ise örneği eylem kullanılan non-GET.

cevap

64

doğru anlamak için, ve olmayabilir, parametre {id: @id} başka bir şekilde bir gösterimidir url değişkeninizi bir veri parçasıyla temin edin.

Ben post ediyorum verilerde bir özellik "petName" varsa

var myResource = $resource("/posts/:theName", 
          {theName: '@petName'}, 
          {enter : { 
             method: "POST", 
             isArray: false 
            } 
          }); 

, o özelliğin değeri benim url :theName değişkene yer alacak:

bu yöntemi göz önüne alındığında. Gönderi verilerinin olduğunu düşünün, URL "/posts/Spot"'u okuyacaktır. Aklımda, @, gönderilecek nesnenin "özniteliği" anlamına gelir.

o değerden @ götürün ve url değişkeni doğrudan o kaynak parametresinde değer başvuracağı:

{theName: 'petName'} //no "@" 
// url output ----> '/posts/petName' 

. Sadece url içine "Spot" almak için 5 adımlar attı

//url var--> //$resource param {..} --->//Object to be posted 
:theName---> {theName ----> @petName ---> {petName---> "Spot" 

:

İşte referansların zinciridir!

. yukarıdaki örnekte, bir kaynak örneğinin

Örnek: Bir yan not

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"} 

, dokümanlar çok kafa karıştırıcı olabilir. Hiç zor bir ders aldınız mı ve profesör dilini zar zor konuşabilen parlak bir adam mıydı? Evet. Son bölüm için

+3

+1: D. Ayrıca, $ kapsam kolu çok iyi – Ven

+0

vaat ediyor, ben bunu düşünüyorum ... bir "sınıf" oluşturmak ve kaynaktan miras almak için daha mantıklı olurdu gibi görünüyor ... neredeyse bunun gibi bir üye değişkeni, ama belki de bu da katildir. – James

+7

Her şey karışıktır. URL parametreleri ekleyebileceğiniz yaklaşık 4 farklı yer vardır. Bir kaynak yazdığımda bunu mümkün olduğunca basit ve küçük hale getiriyorum. Büyük bir şey ve ben $ http kullanırım. Ama bu sadece ben ... – rGil