Si je comprends bien, et il se peut que je ne comprenne pas, le paramètre {id: @id}
est une illustration d'une autre façon de fournir un élément de données à votre variable url.
Compte tenu de cette méthode :
var myResource = $resource("/posts/:theName",
{theName: '@petName'},
{enter : {
method: "POST",
isArray: false
}
});
Si j'ai un attribut "petName" dans les données que j'affiche, la valeur de cet attribut sera placée dans le fichier :theName
dans mon url. Imaginez que les données du message soient {"petType": "cat", "petName": "Spot"}
l'url sera la suivante "/posts/Spot"
. Dans mon esprit, le @
signifie "attribut" de l'objet à enregistrer.
Enlevez le @
de cette valeur, et la variable url fera directement référence à la valeur de ce paramètre de ressource :
{theName: 'petName'} //no "@"
// url output ----> '/posts/petName'
.
Voici la chaîne des références :
//url var--> //$resource param {..} --->//Object to be posted
:theName---> {theName ----> @petName ---> {petName---> "Spot"
Il n'a fallu que 5 étapes pour mettre "Spot" dans l'url !
.
Exemple d'une instance de ressource utilisant l'exemple ci-dessus :
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"}
D'ailleurs, les documents peuvent être très confus. Avez-vous déjà suivi un cours difficile et le professeur était un homme brillant qui parlait à peine votre langue ? Ouaip.