来自文档(http://docs.angularjs.org/api/ngresource.qunresource):
$resource(url[, paramDefaults][, actions]);
paramDefaults(optional) – {Object=}
- URL参数的默认值。...如果参数值与@
前缀,则该参数的值是从数据对象中提取的。
问题是他们指的是什么数据对象?如何使用此功能?
,假设您有这样的资源:
var User = $resource('/user/:userId', {userId:'@id'});
var user = User.get({userId:123});
这意味着在需要该属性时,URL中:userId
的值将用用户对象替换为id
属性。
那么什么时候需要?当您对现有用户(例如get
ing one)进行更新时,这是必需的。创建用户时不需要。
在大多数情况下,您将需要在资源使用的剩余URL中至少有一个带有 @的参数(可能是对象ID)。如果您没有一个,这意味着为了保存对象的实例,您无需了解其存储的位置。这意味着它是单身对象。也许像设置对象。
这是您期待已久的示例:
var User = $resource('/user/:userId/:dogName', {userId:'@id', dogName:@dog});
User.get({userId:123, dog:'Matt'}, function() { .. })
将产生请求:获取/user/123/Matt