Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Backbone.js destroy()不发送删除请求_Backbone.js_Backbone Model - Fatal编程技术网

Backbone.js destroy()不发送删除请求

Backbone.js destroy()不发送删除请求,backbone.js,backbone-model,Backbone.js,Backbone Model,我知道这已经被问了很多次,但我无法找到解决我的问题的办法。在所有其他问题中,答案都与未设置ID或其他类似于_ID等的内容有关 我没有任何自定义同步或销毁方法。一切都是标准的 我的模型和收藏: class Load extends Backbone.Model localStorage: new Backbone.LocalStorage 'relodr.load' urlRoot: relodr.api.url + "loads/" class Loads extends Bac

我知道这已经被问了很多次,但我无法找到解决我的问题的办法。在所有其他问题中,答案都与未设置ID或其他类似于_ID等的内容有关

我没有任何自定义同步或销毁方法。一切都是标准的

我的模型和收藏:

class Load extends Backbone.Model
    localStorage: new Backbone.LocalStorage 'relodr.load'
    urlRoot: relodr.api.url + "loads/"
class Loads extends Backbone.Collection
    model = Load
    localStorage: new Backbone.LocalStorage 'relodr.loads'
    url: relodr.api.url + "loads/"
这是我要删除模型的位置:

delete: (e) =>
        f = $(e.currentTarget)
        id = $(f.parent()).attr("data-id") 
        load = new Loads()
        load.fetch()
        model = load.get id
        console.log model
        model.destroy()
模型已从集合中删除,但删除内容从未发送到服务器

这是console.log模型:

Backbone.Model {cid: "c5", attributes: Object, collection: Loads, _changing: false,     _previousAttributes: Object…}
    _changing: false
    _events: Object
    _pending: false
    _previousAttributes: Object
    attributes: Object
    changed: Object
    cid: "c5"
    id: 2
    __proto__: Object
所以我有一个模型的ID,我的模型有一个URL集

如果我这样做:

model = new Load
    id: 99
model.destroy()
它工作,删除请求被发送,尽管它返回500个错误(显然)。所以它告诉我URL等是正确的和有效的

只是不知道为什么我的销毁方法不起作用

更新

有趣的是,当我记录上面创建的模型时,它看起来是这样的:

Load {cid: "c6", attributes: Object, _changing: false, _previousAttributes: Object, changed: Object…}

因此,一个表示加载(模型名称),另一个表示主干.model

我猜您可能没有为您的模型设置属性。

我最近遇到了这个问题。这不是主干问题,而是jQuery问题。jQueryIssue默认为“json”数据类型,并且它希望数据中有json负载,因此当您发出调用时,jQuery实际上会在DELETE上放屁

要解决此问题,请尝试使用将传递给jQuery.ajax的一些选项执行删除操作:

model.delete({
    type: 'text',
    contentType : 'text/plain'
});

我发现这很有魅力。

Oops。。对哦,好吧。。。您的服务器是否需要某种类型的删除负载?或者它是一个旧式服务器,您必须通过POST来执行删除操作?我会尝试删除负载模型的localStorage属性。留着收集吧,记得吗,还是一样。我刚刚补充说,为了尝试一些东西,我觉得一切都很好,只是您同时配置了本地存储和URL。请再一次放纵我,把本地存储线全部删除。Load仍应配置urlRoot。加载应该有url。谢谢