我正在学习AngularJS并阅读其API
它说“如果参数值以@
为前缀,那么该参数的值将从数据对象中提取”,代码示例为:
var User = $resource('/user/:userId', {userId:'@id'});
var user = User.get({userId:123}, function() {
user.abc = true;
user.$save();
});
我很慢,在示例之后我仍然没有得到前缀@
的含义/做法。有人可以给我一些例子有和没有@
并详细说明吗?感谢...
答案 0 :(得分:10)
不确定。
这意味着当需要该属性时,您的网址中:userId
的值将替换为用户对象中的id
属性。
那么什么时候需要?当您对现有用户执行某些操作时需要它,例如get
更新一个用户。创建用户时不需要它。
在大多数情况下,您需要在资源使用的REST URL中至少有一个前缀为@的参数(可能是对象ID)。如果你没有,那就意味着为了保存一个对象的实例,你不需要知道它存储的位置。这意味着它是一个单例对象。也许就像一个设置对象。
这是您期待已久的例子:
var User = $resource('/user/:userId/:dogName', {userId:'@id', dogName:@dog});
User.get({userId:123, dog:'Matt'}, function() { .. })
将生成请求:获取/user/123/Matt