范围Angularjs $资源参数到HTTP哈希

时间:2014-10-31 15:43:03

标签: ruby-on-rails angularjs angularjs-resource

默认情况下,Angular的$ resource。$ save方法发送一个参数在“base”范围内的请求。例如,使用属性{name: 'John Smith', email: 'john.smith@gmail.com'}创建资源将导致POST参数:

name=John Smith&email=john.smith@gmail.com. 

但是,我有一个Rails控制器需要作用于子哈希的资源(更像是正常的做事方式)。我希望同样的创建请求有参数:

user[name]=John Smith&user[email]=john.smith@gmail.com

问题是,我只是没有看到使用$ resource执行此操作的方法。有可能吗?

1 个答案:

答案 0 :(得分:1)

这可以通过使用$resource的{​​{1}}选项来完成。下面是使用transformRequest操作(用coffeescript编写)的示例:

update

如果您希望默认执行此操作,我建议您编写一个包裹update: method: 'PUT' transformRequest: (data, headersGetter) -> data = _.omit(data, '$promise', '$resolved') json = {'user': data} return JSON.stringify(json) 的服务,并将$resource个功能添加到所有操作中。