Этот код:
var CompanyRecruiters = $resource('/admin/companies/:id/recruiters.json', {id: '@id'});
// create a new employee
var employeeResource = new CompanyRecruiters();
employeeResource.employee = {name: "dwq", email: "[email protected]", role: "Admin"};
var saveEmployeePromise = employeeResource.$save({id: companyId});
NB: Рекрутер и сотрудники эквивалентны в этом случае. На самом деле это должно называться Employee во всем, но в настоящее время он идет на контроллер Recruiters на сервере. Он еще не был реорганизован в контроллер Employee на сервере.
Передает следующие параметры на сервер, когда обещание исполняется:
работы POST "/admin/companies/2/recruiters.json" для 127.0.0.1 в 2014-08-15 13 : 49: 08 +0200 Обработка по Admin :: RecruitersController # create as JSON Параметры: {"employee" => {"name" => "dwq", "email" => "[email protected]", "role" => "Admin"}, "company_id" => "2", "recruiter" => {"employee" => {"name" => "dwq", "email" => " [email protected] "," role "=>" Admin "}}}
Обратите внимание, что параметры отправляются дважды, а один из них завернут в хэш-код "recruiter"=>{
.
Но если я просто изменить одну из линий:
employeeResource. рекрутер = {имя: "dwq", электронная почта: "[email protected]", роль: "Admin"};
Затем он посылает следующие параметры сервера:
работы POST "/admin/companies/2/recruiters.json" для 127.0.0.1 в 2014-08-15 13:57 : 24 +0200 Обработка по Admin :: RecruitersController # create as JSON Параметры: {"recruiter" => {"name" => "dwq", "email" => "[email protected]", "role "=>" Admin "}," company_id "=>" 2 "}
Которая отправляет только pa разметки один раз, как кажется.
Почему Angular $ resource ведет себя таким образом?