13

我正在学习 AngularJS 并阅读它的 API

Angular JS 资源

它说“如果参数值带有前缀,@则该参数的值是从数据对象中提取的”,代码示例:

var User = $resource('/user/:userId', {userId:'@id'});
var user = User.get({userId:123}, function() {
  user.abc = true;
  user.$save();
});

我太慢了,以至于在示例之后我仍然不明白前缀的@含义/作用。有人可以给我一些有和没有的例子@并详细说明吗?谢谢...

4

1 回答 1

10

当然。

这意味着当需要该属性时,您的 url 中的值将被用户对象中的属性:userId替换。id

那么什么时候需要呢?当您对现有用户做某事时,它是必需的,比如geting 一个,更新一个。创建用户时不需要。

在大多数情况下,您希望在资源使用的 REST url 中至少有一个以 @ 为前缀的参数(可能是对象 ID)。如果你没有,这意味着为了保存一个对象的实例,你不需要知道它的存储位置。这意味着它是一个单例对象。也许像一个设置对象。

这是您期待已久的示例:

var User = $resource('/user/:userId/:dogName', {userId:'@id', dogName:@dog});
User.get({userId:123, dog:'Matt'}, function() { .. })

将产生请求:GET/user/123/Matt

于 2012-11-02T02:23:58.030 回答