添加/更改模型后重新影响和渲染集合

Re-fecthing and Rendering Collection After Adding/Changing Model

本文关键字:影响 集合 新影响 模型 添加      更新时间:2023-09-26

我有一个"索引"视图和一个附带的"分页"视图。初始化时,索引视图获取相关集合。最初提取的集合限制为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)

要澄清事件逻辑:

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

因此,这些事件几乎不重叠,但都为特定的用例服务。在将事件绑定到方法(尤其是渲染方法)时,请记住这一点。