0

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

1 回答 1

0

澄清事件逻辑:

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

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

于 2012-08-22T16:12:30.027 回答