【问题标题】:Scope Angularjs $resource parameters to HTTP Hash范围 Angularjs $resource 参数到 HTTP 哈希
【发布时间】:2015-02-20 22:56:35
【问题描述】:

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

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

但是,我有一个 Rails 控制器,它需要 范围为子哈希的资源(更像是正常的 railsy 做事方式)。我希望相同的创建请求具有参数:

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

问题是,我只是看不到使用 $resource 的方法。有可能吗?

【问题讨论】:

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


    【解决方案1】:

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

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

    如果您想默认执行此操作,我建议编写一个包装 $resource 并将 transformRequest 函数添加到所有操作的服务。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-01-26
      • 2012-04-15
      • 2013-08-28
      • 2017-04-09
      • 2014-05-08
      • 2014-04-22
      • 1970-01-01
      相关资源
      最近更新 更多