骨干模型保存不工作

时间:2013-05-08 20:57:05

标签: javascript backbone.js

我尝试使用Backbone.js模型与服务器同步数据。但是保存方法不起作用。任何人都可以帮我找出原因吗?

以下代码有效(不使用Backbone模型):

var newComment = {
    user: user,
    createdDate: date,
    content: text
  }

  //TODO send ajax post request to record the data

  $.ajax({
    url: "comment.php",
    context: document.body,
    data: newComment,
    type: 'POST'
  }).done(function(resp) {
    console.log("resp", resp);
  });

代码不起作用:

var Comment = Backbone.Model.extend({
     urlRoot: 'comment.php'
  });

var comment = new Comment();
comment.save({content: text, dsm_line_item_id: "49934380"}, {
    succcess: function(model, resp, opt) {
          console.log("successfully saved" + resp);
        },
    error: function(model, resp, opt) {
          console.log("error", resp);
        }
    })

2 个答案:

答案 0 :(得分:3)

succcess: function(model, resp, opt) {

这是一个错字

原定为success: function(model, resp, opt) {

答案 1 :(得分:0)

这是猜测,但我认为这可能就是答案。 Backbone的save委托给Backbone.sync,这是Backbone用于读取或保存模型到服务器的功能。

Backbone使用POST,GET,DELETE和PUT;但是有些服务器在PUT和DELETE方面存在问题。也许您的服务器有PUT问题,这就是您的代码无法正常工作的原因。

您可以尝试使用Backbone.emulateHTTP = true;。该选项允许您使用不支持Backbone的RESTful方法的旧Web服务器。在同步过程中,PUT和DELETE将由POST替换。