【问题标题】:why does backbone not send the delete?为什么主干不发送删除?
【发布时间】:2012-06-03 21:50:22
【问题描述】:

我有一个非常基本的主干(示例)应用程序,它只是创建和销毁模型项。创建模型时,对象通过 POST 持久化到 Web 服务器,但是当模型被销毁时,没有 DELETE 发送到服务器?知道为什么会这样吗?

非常基本的模型:

window.User = Backbone.Model.extend({
  urlRoot: 'users'
});

我的测试代码只是为了创建和删除模型:

var model = null;

$(".add").click(function(){
  if (model == null) {
    model = new window.User;
    model.set({name: 'meeee'});
    model.save();
  }
});

$(".remove").click(function(){
  if (model != null) {
    model.destroy();
  }
});

创建模型时的 JSON 响应似乎也不错:

【问题讨论】:

  • 您的服务器如何响应save 请求?如果模型没有.id 属性(保存时服务器应该返回),它不会发送任何请求。
  • 用json响应的截图更新了问题。

标签: javascript backbone.js


【解决方案1】:

Backbone 不知道 _id 是您用于 id 字段的名称,除非您以某种方式修改了 Backbone.js 副本(请不要)。要告诉 Backbone 某个特定模型的 id 字段的名称是什么,请在模型定义中使用 idAttribute。否则,默认为常规的id

如果没有设置“身份”字段,Backbone 会认为模型实例“isNew”(尚未持久化到服务器的模型实例),所以当没有“身份”时(如在您的情况下,由于它不知道您的身份是 _id),因此无需在服务器上销毁它。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-01
  • 1970-01-01
  • 2021-03-07
  • 1970-01-01
相关资源
最近更新 更多