我在网上搜索无济于事 - 有什么区别:
YourRunnable yourRunnable = new YourRunnable();
Thread contract1 = new Thread(yourRunnable);
yourRunnable.name = "foo";
contract1.start();
...和
this.listenTo(this.collection, 'add reset remove', this.render);
我试图找出this.listenTo(this.collection, 'change', this.render);
事件封装的内容。很难找到这个信息。
此外,在change
回调中 - 如何找出更改的内容?我是否必须自己检查Backbone模型/集合,还是有更高层次的方法来做到这一点?
答案 0 :(得分:3)
带注释的Backbone源非常适合找出这样的东西。
根据http://backbonejs.org/docs/backbone.html#section-144,只要集合中的模型发生更改,就会触发“更改”事件。
使用与在模型上触发的相同参数触发change事件,其中更改的模型将是事件触发的参数之一(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