从文档(http://docs.angularjs.org/api/ngResource.$resource):
$resource(url[, paramDefaults][, actions]);
paramDefaults(optional) – {Object=}
–网址参数的默认值。...
如果参数值的前缀是
@
,则将从数据对象中提取该参数的值。问题是它们指的是什么数据对象?如何使用此功能?
最佳答案
假设您拥有这样的资源:
var User = $resource('/user/:userId', {userId:'@id'});
var user = User.get({userId:123});
这意味着需要该属性时,URL中的
:userId
值将被用户对象中的id
属性替换。那么什么时候需要?当您对现有用户执行某项操作(例如
get
编码一个,更新一个)时,它是必需的。创建用户时不需要。在大多数情况下,您需要在资源使用的REST URL中至少有一个以@开头的参数(可能是对象ID)。如果没有,则意味着您可以保存对象的实例,而无需了解对象的存储位置。这意味着它是一个单例对象。也许像一个设置对象。
这是您期待已久的示例:
var User = $resource('/user/:userId/:dogName', {userId:'@id', dogName:@dog});
User.get({userId:123, dog:'Matt'}, function() { .. })
将产生请求:GET
/user/123/Matt
关于angularjs - “at”在资源定义中登录参数名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13313971/