【发布时间】:2013-01-19 15:45:29
【问题描述】:
我在一个页面上有一系列的 cmets,可以对其进行编辑。我的想法是通过 Rails 渲染 cmets,并在 Backbone 集合中预加载包含所有这些 cmets 的 json。
然后我会每隔 x 秒轮询一次,看看是否有变化。通常我通过遍历所有模型来呈现集合,并为每个项目创建一个视图。当模型更新时,视图也会更新(在这种情况下评论)。
但我的问题是,当视图已经在 DOM 中时,如何将视图绑定到模型。特别是因为视图具有动态 ID。渲染视图没有意义,因为它已经存在了。当你渲染一个视图时,主干通过某种 cid 绑定它。
我能想到的唯一解决方案是在页面加载时在 dom 对象中设置一个 id。呵呵
<div id="comment-<%= content.id %>"></div>
。然后在视图的初始化中,重置id
class Comment extends Backbone.View
initialize: ->
@id = "comment-" + @model.get('id')
但我不确定这是否可行。事件还会被绑定吗?
【问题讨论】: