Backbone.Deferred.Collection触发多个'添加' event - 如何批量处理这些事件?

时间:2015-11-10 01:27:53

标签: backbone.js coffeescript

这是我的代码:

class ActivityView extends App

  onInitialize: ->
    @activities = new Activities
    @activities.on 'add remove', @_renderActivityItems, @

当我从服务器端点检索数据时,响应可能包含十几个数据点。但是,每当将每条数据添加到集合中时,都会添加'事件被触发,函数_renderActivityItems被多次调用。

这似乎非常昂贵,因为该函数实际上呈现了集合中的所有元素。

最好在将所有元素添加到集合后调用_renderActivityItems函数。

如何通过骨干事件实现它?

2 个答案:

答案 0 :(得分:2)

在Backbone 1.2.0中添加了更新事件

  

添加了"更新"在任何数量的模型之后触发的事件   添加或删除集合。方便重新渲染事物列表   没有去抖动。

     

"更新" (集合,选项) - 任何事件后触发的单个事件   已从集合中添加或删除了多个模型。

答案 1 :(得分:1)

如果您使用Collection.fetch()方法初始化集合,请添加选项{silent: true}以防止侦听器触发提取。