此代码:
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 $资源以这种方式运行?
答案 0 :(得分:1)
这不是Angular这样做,而是Rails。你可能有
Foo::Bar { b, .. } => b * b,
在config / initializers / wrap_parameters.rb中。