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