为什么Angular $ resource会在某些情况下添加两次参数?

时间:2014-08-15 12:06:44

标签: angularjs angular-resource

此代码:

var CompanyRecruiters = $resource('/admin/companies/:id/recruiters.json', {id: '@id'});

// create a new employee
var employeeResource = new CompanyRecruiters(); 

employeeResource.employee = {name: "dwq", email: "dwq@wq.com", role: "Admin"};

var saveEmployeePromise = employeeResource.$save({id: companyId});

注意:招聘人员和员工在这种情况下是等效的。它应该被称为全职员工,但它目前会转到服务器上的Recruiters控制器。它还没有被重构到服务器上的Employee控制器中。

执行承诺时,将以下参数发送到服务器:

  

开始POST" /admin/companies/2/recruiters.json"对于127.0.0.1 at   2014-08-15 13:49:08 +0200加工   Admin :: RecruitersController #create as JSON参数:   {"员工" => {"名称" =>" dwq","电子邮件" =>&#34 ; dwq @ wq.com","角色" =>"管理员"} ,   " company_id" =>" 2","招聘人员" => {"员工" => {&#34 ;名称" = GT;" DWQ&#34 ;,   "电子邮件" =>" dwq@wq.com","角色" =>"管理员"} }}

请注意,参数发送两次,其中一个包装在"recruiter"=>{哈希中。

但如果我只是将其中一行更改为:

  

employeeResource。招聘人员 = {姓名:" dwq",电子邮件:" dwq@wq.com" ;,角色:   "联系"};

然后它将以下参数发送到服务器:

  

开始POST" /admin/companies/2/recruiters.json"对于127.0.0.1 at   2014-08-15 13:57:24 +0200加工   Admin :: RecruitersController #create as JSON参数:   {"招聘人员" => {"名称" =>" dwq","电子邮件" =>" dwq @ wq.com&#34 ;,   "角色" =>"管理员"}," company_id" =>" 2"}

只发送一次参数,就像它应该的那样。

为什么Angular $资源以这种方式运行?

1 个答案:

答案 0 :(得分:1)

这不是Angular这样做,而是Rails。你可能有

Foo::Bar { b, .. } => b * b,
在config / initializers / wrap_parameters.rb中