javascript - Backbone 的模型和集合的更改事件

标签 javascript backbone.js

我在网上搜索无果 - 有什么区别:

this.listenTo(this.collection, 'add reset remove', this.render);

…和:

this.listenTo(this.collection, 'change', this.render);

我试图找出 change 事件封装的内容。很难找到这些信息。

此外,在 this.render 回调中 - 我如何找出更改的内容?我必须自己检查 Backbone 模型/集合还是有更高级别的方法来做到这一点?

最佳答案

带注释的 Backbone 源代码非常适合解决此类问题。

根据 http://backbonejs.org/docs/backbone.html#section-144只要集合中的模型发生更改,就会触发“更改”事件。

更改事件的触发参数与在模型上触发的参数相同,其中更改的模型将是触发事件的参数之一 ( http://backbonejs.org/docs/backbone.html#section-73 )。您可以通过在模型上调用 changedAttributes (http://backbonejs.org/docs/backbone.html#section-77) 来检查更改的内容。但是,重置似乎也不一定会触发更新。

添加、重置和删除似乎是在与收集更改完全不同的情况下触发的。您可能正在寻找“更新”,只要集合中的元素数量发生变化就会触发:http://backbonejs.org/docs/backbone.html#section-118

关于javascript - Backbone 的模型和集合的更改事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31301281/

相关文章:

javascript - 在nodejs中模拟Eventemitter

javascript - Marionette.js 布局仅渲染模板的单个元素

javascript - 使用下划线合并重复的 Backbone 模型数据

javascript - 动态更改 jquery 选择的 max_selected 选项

javascript - 正确实现 Backbone 比较器

javascript - 将初始数据加载到主干应用程序的最佳实践?

javascript - Backbonejs路由区分大小写问题

javascript - 将 Angular 1 Controller 范围方法作为回调传递给验证码库

javascript - .toggleClass() 方法的奇怪行为

javascript - 将字符串转换为日期并减去 X 天