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 主干破坏错误_Backbone.js - Fatal编程技术网

Backbone.js 主干破坏错误

Backbone.js 主干破坏错误,backbone.js,Backbone.js,当我在一个模型上调用主干销毁方法时,我得到了这个错误 必须指定“url”属性或函数 我正在使用一个本地集合,我在网上的某个地方看到,在查找url的destroy方法中调用了save方法。在这附近有很多地方。如何防止错误发生。正如nrabinowitz在评论中所说,destroy用于从服务器上删除,实际上不会从集合中删除 如果问题是从集合中删除它,就像在评论中看到的那样 模型可以通过模型的collection属性访问其集合 var Model = Backbone.Model.extend({

当我在一个模型上调用主干销毁方法时,我得到了这个错误

必须指定“url”属性或函数


我正在使用一个本地集合,我在网上的某个地方看到,在查找url的destroy方法中调用了save方法。在这附近有很多地方。如何防止错误发生。

正如nrabinowitz在评论中所说,destroy用于从服务器上删除,实际上不会从集合中删除

如果问题是从集合中删除它,就像在评论中看到的那样

模型可以通过模型的
collection
属性访问其集合

var Model = Backbone.Model.extend({
        defaults:{ name: 'bob' }
    }),
    Collection = Backbone.Collection.extend({
        model: Model
    });

var c = new Collection([{ name: 'joe'}, {name: 'h'}, {name: 'bob'}]);

var m = c.at(1); // get model at index 1 name = h

m.collection.remove( m ); // access the collection via the model we pulled out

console.log( c.length ); // only 2 models within :)

我也有类似的问题。我的问题是,我使用销毁回调来确定是否从CoolRection中删除模型:

this.model.destroy({
  success: function(model, response)  {
    this.remove();
  }
});
通过从服务器返回
Error 500
进行测试,我在第二次尝试调用destroy时得到了相同的错误

解决办法来自于。看起来虽然我没有调用this.remove(),模型已从集合中删除:

如果要在从集合中删除模型之前等待服务器响应,请传递{wait:true}

结果如下:

this.model.destroy({
  wait: true,
  success: function(model, response)  {
    this.remove();
  }
});

你想完成什么?
destroy
方法的目的是删除服务器上的模型。我正在尝试删除集合中的模型,但我无法从我所在的代码中访问该集合。我认为销毁可以工作,但它会导致错误,因为模型没有url。所以我想找到一个解决办法。有没有办法从模型本身获取模型所属的集合。集合确实有一个
remove
方法。啊,您没有对包含模型的集合的引用(编辑),我知道该移除,但正如我所说的,我无权访问集合本身。所以我不能只打电话给催收。删除(模型)谢谢你的回答;我没有意识到模型有这个集合属性。我很好奇当一个模型被添加到多个集合时会发生什么,所以我检查了,发现了该集合。\ u prepareModel将设置模型的集合属性。因此,如果将同一个模型添加到多个集合中,则其集合属性将指向添加该模型的最后一个集合。此外,我认为您关于“[destroy]实际上不会按原样从集合中删除”的陈述是不正确的。根据和,集合将对模型上触发的“销毁”事件作出反应。注意:随destroy事件一起传递的collection参数反映了模型的collection属性,而不一定是将事件转发到其任何侦听器的集合。