我在网上搜索无果 - 有什么区别:
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/