0

我正在尝试更新属于 CollectionView 的项目的视图。最好的方法应该从那个特定的视图调用“render()”?尽管模型发生了变化,但我认为我在这里遗漏了一些重要的东西,因为尽管模型发生了变化,但调用“render()”并不会更新视图。谢谢你的帮助!问候!

4

1 回答 1

1

调用“render()”的最佳方式是为 CollectionView 订阅某个事件,例如“update_collection_view”。阅读更多关于Chaplin.mediator的内容。这是交流和交换信息的常用卓别林机制,可防止内存泄漏。从服务器加载数据后,通常会在集合或模型的“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    
于 2013-11-25T11:31:06.683 回答