angularjs - “at”在资源定义中登录参数名称

标签 angularjs

从文档(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/

相关文章:

javascript - 如何检测 Touchend 或更改范围值的结束?

javascript - 如何将动态模板加载到 $uibModal.open()(Angular UI Bootstrap )中?

html - Angularjs + HTML鼠标悬停播放youtube

Angularjs:将下划线注入(inject)$scope

javascript - Angular sqlite set css url() 无法设置相对路径

javascript - forEach 内部提供商服务 AngularJS

javascript - 电子邮件黑名单和验证

ng-repeat 中的 AngularJS ng-form

MQTT 的 JavaScript 客户端不使用 WebSockets

angularjs - ionic - 在同一页面中的多个 View