angularjs

angularjs - ¿Qué es @id según se pasa a $ resource?



ng-href angular 5 (2)

$resource("/entries/:id", {id: "@id"}, {update: {method: "PUT"}})

¿Qué es @id?

En la página de $ resource doc, alguien dice esto a continuación, pero todavía no entiendo.

Si el valor del parámetro tiene el prefijo @, entonces el valor de ese parámetro se extrae del objeto de datos (útil para las operaciones que no son GET). o la instancia en sí si se utiliza una acción de instancia no GET.


Si entiendo esto correctamente, y es posible que no, el parámetro {id: @id} es una ilustración de otra forma de suministrar una variable a su variable url.

Dado este método:

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

Si tengo un atributo "petName" en los datos que estoy publicando, el valor de ese atributo se colocará en :theName variable :theName en mi url. Imagine que los datos de la publicación son {"petType": "cat", "petName": "Spot"} , el url leerá "/posts/Spot" . En mi opinión, el @ significa "atributo" del objeto a publicar.

Quite la @ de ese valor, y la variable url hará referencia directa al valor en ese parámetro de recurso:

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

.

Aquí está la cadena de referencias:

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

¡Solo se necesitaron 5 pasos para obtener "Spot" en la url!

.

Ejemplo de una instancia de recurso utilizando el ejemplo anterior:

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

En una nota lateral, los documentos pueden ser muy confusos. ¿Alguna vez has tomado un curso difícil y el profesor era un hombre brillante que apenas hablaba tu idioma? Sip.


var myResource = $resource("/entries/:theName", {theName: ''@petName''}, {update : { method: "PUT", isArray: false } });