保存时的主干模型只返回表单数据
Backbone model on save only returns form data
在我正在构建的web应用程序中,我通过API保存模型-在成功时,我将模型返回到控制台,但是模型只包含从表单提交的数据,但是API保存了从提交的表单创建的各种其他数据,我如何才能在成功回调中返回完整的模型?
这是我的代码,
模型保存,
saveBasicProject: function(e) {
e.preventDefault();
var that = this;
console.log("saving basic project");
var projectData = $('.create-new-project').serializeJSON();
//var projectModel = new app.Project(projectData);
this.model.save(projectData, {
success: function(model, response) {
console.log(model);
that.response_json = JSON.parse(response);
that.collection.add(that.model);
},
error: function(model, response) {
var error_json = response.responseJSON;
$(".create-new-project").before( response.responseJSON.msg );
}
});
},
API保存
public function save()
{
$rules = array(
'name' => 'required',
'description' => 'required',
'cost' => 'numeric',
'start_date' => 'required | date',
'end_date' => 'required | date'
);
$validation = Validator::make(Input::all(), $rules);
if($validation->fails()) {
return Response::json( $validation->messages()->first(), 500);
} else {
$project = new Project;
$project->name = Input::get('name');
$project->description = Input::get('description');
$project->total_cost = Input::get('cost');
$project->start_date = Input::get('start_date');
$project->finish_date = Input::get('end_date');
$project->run_number_days = $this->get_days_between_two_dates(Input::get('start_date'), Input::get('end_date'));
$project->num_days_from_year_start = $this->get_days_between_two_dates("2014-01-01", Input::get('start_date'));
$project->color = $this->project_rbg_to_project_hex();
$project->user_id = ResourceServer::getOwnerId();
if( $project->save() ) {
return Response::json($project, 200);
} else {
return Response::json(array( 'error' => 'Something has gone wrong!' ), 500);
}
}
}
返回什么?
child {cid: "c60", attributes: Object, _changing: false, _previousAttributes: Object, changed: Object…}
_changing: false
_events: Object
_pending: false
_previousAttributes: Object attributes: Object cost: "18000" description: "Description" end_date: "2014/01/30" name: "Simon 18" start_date: "2014/01/01"
__proto__: Object changed: Object cid: "c60" collection: child
__proto__: Surrogate
POST json
{cost: "23000"
description: "Description"
end_date: "2014/01/30"
name: "Project #23"
start_date: "2014/01/01"}
服务器的响应
{
name: "Project#23",
description: "Description",
total_cost: 23000,
start_date: "2014/01/01",
finish_date: "2014/01/30",
run_number_days: 30,
num_days_from_year_start: 1,
color: "#757da3",
user_id: 1,
updated_at: "2014-08-0510: 14: 15",
created_at: "2014-08-0510: 14: 15",
id: 105
}
上述内容也在DB中得到更新,但返回的模型仅包括原始请求json。
您需要在成功回调中显式设置要建模的响应数据。
。
that.model.set(that.response_json);
相关文章:
- JS验证ajax返回的html中的表单数据
- Ajax正确发布表单,但不会返回成功数据
- Uploadify-随机表单数据's已返回上载表单
- (extjs)获取表单中单选按钮的选定值.不返回该值
- 返回时清洁表单
- 在HTML表单中键入时返回文本
- JavaScript表单返回,但无法正常工作
- Ajax向表单返回false
- 如何在运行总计计算器时返回表单输入并更新 JavaScript 变量
- 返回表单提交中列表项的随机顺序
- Javascript提交返回表单
- 返回表单提交的结果从 PHP 到 JavaScript,区分成功和失败
- 保存时的主干模型只返回表单数据
- 在Symfony2中使用Ajax/Jquery返回表单视图
- 美元.tojson不返回表单值(但它创建了一个带有表单字段的JSON)
- 如何使用jQuery返回“表单”的值从选择在Ruby on Rails应用程序
- OnSubmit JavaScript只对错误条目工作一次,不重复返回表单,而是提交第二次输入的错误值
- AngularJS控制器返回表单
- Jquery 不返回表单 INPUT 中的值
- 我如何在谷歌表单脚本编辑器中设置var主题,以返回表单/工作表中指定字段的值