我有一个设置,我可以通过表单动态添加模型。它的数据插入到表的行中。插入该行后,我有一个删除按钮附加到该行。
现在当我尝试删除插入的行时,我无法访问,因为没有唯一的id附加到该特定模型,因此在DELETE请求中没有发送id。但是,一旦我通过提取来刷新整个集合,它就可以工作。
我尝试使用这样的cid获取整个模型:
deleterow:function(){
window.rowList.get(this.model.cid).destroy({wait:true,success:function(){
}});
这不起作用。我正在使用phil sturgeon REST API进行codeigniter。
编辑:
$this->response(json_encode($Q),201);
这里$ Q填充如下:
$this->db->where('id',$this->db->insert_id());
$Q=$this->db->get('rows')->result();
作为回应,我得到这样的数据:
"[{\"id\":\"285\",\"name\":\"\",\"address\":\"\",\"city\":\"\",\"state\":\"\",\"zip\":\"\",\"email\":\"\",\"contact_number\":\"0\",\"alternate_number\":\"0\",\"row_type\":\"\",\"local_vat\":\"\",\"cst\":\"\",\"st\":\"\",\"excise_duty\":\"\"}]"
所以它不是正确的JSON格式。我该怎么办?
答案 0 :(得分:3)
当Backbone使用model.save
或collection.create
创建或更新模型时,从服务器发回的任何JSON数据都会自动set
进入模型。例如,如果您保存新模型:
var model = collection.create({foo:'bar'});
这会导致POST
请求被发送到模型的url根目录,并带有以下正文:
{"foo":"bar"}
您应该将服务器配置为发送回创建的模型作为对POST
请求的响应,例如:
{"id":100, "foo":"bar"}
Backbone将自动将响应中的任何新的和已更改的属性复制到模型中,因此您将拥有:
var model = collection.create({foo:'bar'}, {success: function() {
console.log(model.id); // -> 100
}});