angularjs - significa - “At” inicia sesión en los nombres de los parámetros en la definición de recursos
que significa ng en angular (1)
de la documentación ( http://docs.angularjs.org/api/ngResource.$resource ):
$resource(url[, paramDefaults][, actions]);
paramDefaults(optional) – {Object=}
- Valores predeterminados para los parámetros url. ... Si el valor del parámetro tiene el prefijo @
entonces el valor de ese parámetro se extrae del objeto de datos.
La pregunta es a qué objeto de datos se refieren? ¿Cómo usar esta característica?
Digamos que tienes un recurso como este:
var User = $resource(''/user/:userId'', {userId:''@id''});
var user = User.get({userId:123});
Esto significa que el valor de :userId
en su url se reemplazará con la propiedad id
del objeto de usuario cuando esa propiedad sea requerida.
Entonces, ¿cuándo se requiere? Se requiere cuando le está haciendo algo a un usuario existente, como get
uno, actualizar uno. No es necesario cuando creas un usuario.
En la mayoría de los casos, deseará tener al menos un parámetro prefijado con @ en su url REST que ese recurso usa (probablemente el identificador del objeto). Si no tiene uno, eso significa que para poder guardar una instancia de un objeto, no necesita saber nada sobre dónde está almacenado. Esto implica que es un objeto singleton. Tal vez como un objeto de configuración.
Aquí está su ejemplo tan esperado:
var User = $resource(''/user/:userId/:dogName'', {userId:''@id'', dogName:@dog});
User.get({userId:123, dog:''Matt''}, function() { .. })
producirá la solicitud: GET /user/123/Matt