添加/更改模型后重新获取和渲染集合

时间:2012-08-22 15:39:00

标签: javascript backbone.js

我有一个“索引”视图和一个附带的“分页”视图。在初始化时,索引视图将获取相关集合。最初获取的集合仅限于100个模型,并包含集合中所有值的计数。计数被传递到分页视图,因此它产生页码。在第10页(10条记录/页)之后接下来的100个模型,依此类推。

记住上述内容时,当我向集合添加一个或多个模型时,需要从服务器重新获取模型计数(因此可以重新计算页面),即使我这样做:

@collection.add [new_model]

但是,如果更改模型中的值,我只想重新渲染集合。

使用以下初始化代码,我可以在更改后重新呈现集合。但是,如果“添加”没有任何反应。如何构建视图以从服务器重新获取新的集合和计数?

注意:我正在使用fetch(add: true)

initialize: ->
    @collection = new MyApp.MyCollection()
    @collection.on('add', @render, @)
    @collection.on('change', @render, @)
    @collection.fetch(add: true)

1 个答案:

答案 0 :(得分:0)

澄清事件逻辑:

  • 重置:将在从服务器获取后触发。获取会删除集合的所有内容,只是将所有内容都插入到来自服务器的集合中
  • 添加:将模型添加到集合后将触发。 注意:除非您使用add:True选项,否则提取不会触发添加。
  • 更改:将在模型的内容/字段更改后触发。 注意:fetch或添加模型不会触发更改。

所以这些事件几乎没有重叠,但都是针对具体的用例。在将事件绑定到方法时,尤其是渲染方法时,请记住这一点。