Backbone.js在save()之后从服务器获得响应

时间:2011-09-05 23:57:54

标签: backbone.js

我有一个将数据保存到codeigniter函数的模式,如果有问题,codeigniter函数会返回有效的JSON数据,如何获取服务器在使用save()时返回的错误详细信息。我有以下代码不起作用

this.newproject.save({
            'Objective':Objective,
            "Planner":Planner,
            "NISupervisor":NISupervisor,
            "SiteIDs":SiteIDs,
            "Status":Status ,
            "StartDate":StartDate,
            "EndDate":EndDate,
            "Details":Details,
            "PrjTitle":PrjTitle
        },{
            success:function(model,response){
                console.log(response);
            }
        },{
            error:function(){
                alert("wrong");
            }
        });

成功根本不起作用

2 个答案:

答案 0 :(得分:3)

保存的第二个选项是具有2个属性(成功和错误)的对象。我假设您的意思是“错误”根本不起作用,并且根据您的实际问题文本,成功正常。

this.newproject.save({
        'Objective':Objective,
        "Planner":Planner,
        "NISupervisor":NISupervisor,
        "SiteIDs":SiteIDs,
        "Status":Status ,
        "StartDate":StartDate,
        "EndDate":EndDate,
        "Details":Details,
        "PrjTitle":PrjTitle
    },{
        success:function(model,response){console.log(response);},
        error:function(model,response){console.log(response);}
    });

错误回调也传递模型和响应,因此响应参数是您可能正在寻找的。

答案 1 :(得分:1)

您的代码存在的问题是您有三个哈希参数。 save方法接受attrs和options作为其两个参数。因此,您的代码应该类似于:

var attrs = {
  "Objective":Objective,
  "Planner":Planner,
  "NISupervisor":NISupervisor,
  "SiteIDs":SiteIDs,
  "Status":Status ,
  "StartDate":StartDate,
  "EndDate":EndDate,
  "Details":Details,
  "PrjTitle":PrjTitle
};
this.newproject.save(attrs, {
  success: function(model, response) {
    console.log(response);
  },
  error: function(model, response) {
    alert('wrong');
  }
});

所以你的电话无法附加错误功能。上面的例子应该适合你,因为它结合了第二个哈希参数中的成功和错误函数。