javascript - 销毁事件不会从 Backbone 模型传播到 Backbone 集合

标签 javascript jquery backbone.js underscore.js

我有一个 Backbone 模型集合。

MyCollection = Backbone.Collection.extend({
   model: myMymodel;
});

MyModel = Backbone.Model.extend({
...
});

每个模型都有一个 View

myView = Backbone.View.extend({
  initialize: function() {
    this.model = new MyModel();
  };
});

服务器端没有持久性。这仅用于构建客户端信息。因此模型没有 ids,并且尚未配置 Backbone.sync 的 url。

在 View 中,我想从集合中删除模型。

我尝试过以下方法:

this.model.trigger( "destroy" );

但是它不起作用。销毁事件不会传播到集合。

知道我做错了什么吗?

谢谢

最佳答案

我认为您根本没有实例化该集合。至少从代码中无法看出这一点。如果您只是创建模型实例但未将其添加到任何集合中,则 this.model.trigger("destroy"); 将不执行任何操作。

myView = Backbone.View.extend({
  initialize: function() {
    this.coll = new MyCollection();
    this.model = new MyModel();
    this.coll.add(this.model);
  };
});

现在模型已成为集合的一部分:

this.model.destroy()

进行删除 API 调用并从集合中删除

this.collection.remove(this.model)

从集合中删除模型,但不进行删除 API 调用。

this.model.trigger("destroy");

触发模型上的销毁事件,但不会销毁模型本身。如果模型是集合的一部分,则与collection.remove(this.model)相同。

关于javascript - 销毁事件不会从 Backbone 模型传播到 Backbone 集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15255600/

相关文章:

javascript - Jquery 数据表在 IE9 上呈现缓慢

javascript - Backbone.history.navigate(url,{trigger :true, replace: true})

javascript - 在 Backbone 中跨不同类触发和监听事件 - 在 CoffeeScript 中

javascript - stub setTimeout 函数

Javascript 上下文菜单点击事件/检测 - 过滤粘贴内容

javascript - 将 JQuery 单击事件直接发送到同一元素的两个?

javascript - BackBone 集合获取参数进行重复调用但不起作用

javascript - Indesign 插件的外部配置文件

javascript - 如何使用 Javascript 在 CSS 中设置多种样式(由于 vendor 前缀)?

javascript - 使用 jQuery 加载源文件时更新对象 HTML