我开发了一个 jquery &backbone.js 网络应用程序。
一个组件有一个 html 表,该表后面是一个主干.js 集合。
此集合中的任何更改都应该导致 html 表的更新,所以我写
this.collection.bind("reset add remove", this.renderRows, this);
所以我更新了 html 表,当整个集合变得新时,当一个新模型被添加时,当一个模型被删除时。
当用户悬停并单击 html 表格的某一行时,还会调用一个详细视图组件。在这个组件的开头,我从集合中得到了正确的模型
changeModel = this.collection.get(id);
在用户改变了一些属性之后,我做
changeModel.set(attrs);
并返回到 html 表。集合中的模型具有正确的更改值。
但是 html 表没有更新,因为没有触发 3 个事件(重置、添加、删除)。
所以我在集合绑定中添加了“替换”
this.collection.bind("replace reset add remove", this.renderRows, this);
在从详细视图返回之前,我调用了
this.collection.trigger("replace");
我的解决方案有效,但我的问题是:
是否有任何“本机”backbone.js 解决方案已经存在并且我错过了并且我不必自己触发某些东西?