2014-10-31 75 views
1

默认情况下,Angular的$ resource. $ save方法发送一个请求,其中包含“base”范围中的参数。例如,对于性能{name: 'John Smith', email: '[email protected]'}创建资源将导致带有参数的POST:

name=John Smith&[email protected] 

不过,我有一个Rails控制器需求资源作用域子散(更像正常railsy方式做事)。我想同样的创建请求有参数:

user[name]=John Smith&user[email][email protected] 

问题是,我只是没有看到一种方法来使用$资源。可能吗?

回答

1

这可以通过使用$resourcetransformRequest选项来完成。以下是使用update动作(写在CoffeeScript中)的一个例子:

update: 
    method: 'PUT' 
    transformRequest: (data, headersGetter) -> 
    data = _.omit(data, '$promise', '$resolved') 
    json = {'user': data} 
    return JSON.stringify(json) 

如果你想在默认情况下做到这一点,我建议写一个包装$resource,并增加了transformRequest功能,所有操作的服务。