1
我想避免对Backbone.Collection每个“添加删除复位”事件重新呈现。骨干 - 避免重新渲染每个删除
所以在Backbone.View我可能有:
this.listenTo(this.collection,'remove',this.render);
如果我删除/删除了一堆的车型,这将使得尽可能多的车型,因为我删除。
避免这种情况的最佳方法是什么?
我想避免对Backbone.Collection每个“添加删除复位”事件重新呈现。骨干 - 避免重新渲染每个删除
所以在Backbone.View我可能有:
this.listenTo(this.collection,'remove',this.render);
如果我删除/删除了一堆的车型,这将使得尽可能多的车型,因为我删除。
避免这种情况的最佳方法是什么?
您不必重新渲染,只是因为事情需要走开整个视图。
你可以有一个方法来删除视图的只是一个模型大块:
model_removed: function(m) {
// find m's chunk of the view inside this.$el
// and remove it.
this.$('whatever-selector-you-need').remove();
}
,然后绑定是到'remove'
事件:
this.listenTo(this.collection, 'remove', this.model_removed);
演示:https://jsfiddle.net/ambiguous/fL0zr67s/
或者,您可以嵌套您的视图,以便为每个模型和集合的总体视图提供一个子视图。收集视图将根据需要创建和渲染模型视图,然后只需在子视图上调用remove
以响应集合中的'remove'
事件。避免它
一个方法是,当所有的模型已被删除火灾自定义事件,并听取该自定义事件,而不是听香草“删除”。 –
那么你会如何删除几个模型?有没有收集某个地方,你正在清理? – kevin628
你已经从我们在这里看到的东西中回答了你自己。如果你想要更多,你需要具体。 – Deryck