从CollectionView更新项目的视图

时间:2013-11-22 18:07:30

标签: chaplinjs

我正在尝试更新属于CollectionView的项目的视图。 最好的方法应该从该特定视图调用“render()”? 尽管模型有所改变 我想我在这里缺少一些重要的东西,因为虽然模型已经改变,但调用“render()”并不会更新视图。 谢谢你的帮助! 此致!

1 个答案:

答案 0 :(得分:1)

调用“render()”的最佳方法是将CollectionView订阅到某个事件,例如“update_collection_view”。详细了解Chaplin.mediator。这是沟通和交换信息的常见chaplin机制,这可以防止内存泄漏。在从服务器加载数据后,事件通常会在“fetch()”方法中引发收集或模型。

define [
'chaplin'
'views/base/view'
'views/base/collection_view'
], (Chaplin, View, CollectionView) ->


class SomeView extends View
  template: template1
  template = null
  foo: ->
    #here we update collection view
    Chaplin.mediator.publish 'update_collection_view'



class SomeCollectionView extends CollectionView
  itemView: SomeView

  template: template2
  template = null

  initialize: ->
    super
    @subscribeEvent 'update_collection_view', @render