我使用 BackBone 关系作为 Backbone.js 的非常有用的扩展。
但是,在保存具有 1 - M 关系的主干关系模型后,我遇到了一个问题。
我看到的问题是,在 model.save() 之后,add: 为集合中的每个相关模型再次触发。这会导致我的视图出现问题,因为模型在主视图中第二次呈现。
我的主视图设置如下:
//master view
initialize: function(){
_.bindAll(this, 'render', 'renderRelated');
this.model.bind('change', this.render);
this.model.bind('add:related', this.renderRelated);
}
这在首次加载和添加新的相关模型时效果很好。问题是,当在父模型上调用 saveadd:related
时,即使模型具有 ID 等,也会为每个嵌套模型再次触发。似乎 save 完全重新填充了相关集合。
我想知道其他人是如何解决这个问题的?我在考虑:
- 将嵌套视图附加到每个相关模型
- 绑定 rm:与将视图从主视图中移除的方法相关
这对我来说似乎很hacky,效率非常低,并且会在删除并再次添加子视图时对最终用户造成闪烁效果。
作为其中的一部分,我还尝试绑定到,reset:related
但保存后似乎没有触发。