0

我尝试使用 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);
        }
    })
4

2 回答 2

3
succcess: function(model, resp, opt) {

这是错字吗

应该是 success: function(model, resp, opt) {

于 2013-05-09T05:11:23.740 回答
0

这是一个猜测,但我认为这可能是答案。Backbone 的save委托Backbone.sync,Backbone 用来读取或保存模型到服务器的函数。

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

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

于 2013-05-08T21:23:26.503 回答