【发布时间】:2011-12-15 18:45:26
【问题描述】:
在我的 Backbone.js 应用程序中,我有一个包含集合的模型。为了支持从后端获取该模型,我重写了 parse 方法以将 JSON 响应中的数组转换为集合实例。它看起来像这样:
class SomeModel extends Backbone.Model
defaults: ->
collection: new SomeCollection([new SomeModel(attr: value)])
parse: (res) ->
res.collection = new SomeCollection(res.collection)
res
class SomeCollection extends Backbone.Collection
model: SomeOtherModel
class SomeCollectionView extends Backbone.View
el: $('collection-view')
我的问题是,虽然SomeCollectionView 绑定到SomeCollection 的现有实例,但在调用SomeModel.fetch() 时,该实例被替换并且视图不再有效。我可以在旧视图上调用 remove() 并实例化一个新视图,但我的 SomeCollectionView 位于现有 HTML 之上(不是从模板构建的),调用 remove 会从DOM。此外,如果我的视图可以简单地对更改事件做出反应而不需要重建,我会更喜欢。
【问题讨论】:
标签: javascript backbone.js coffeescript