如何分离然后重新附加Backbone.View而不解除绑定事件?

max*_*0rd 8 javascript dom backbone.js

我有一个由嵌套子视图组成的Backbone系统,我偶尔需要执行以下操作.

  1. 从DOM中分离子视图
  2. 从头开始(从模板)重新渲染父视图
  3. 将子视图重新附加到正确的位置

我通过调用像这样做$(parent.el).html(...),然后$(parent.el).append(child.el)

我一直看到的这种技术是孩子的事件处理程序丢失了.所以我尝试过很多东西,到目前为止都没有.

  1. 首先用child.el分离child.el $.detach()
  2. 克隆child.el节点并重新附加克隆
  3. 重新连接后再次调用child.delegateEvents()

唯一对我有用的是从头开始重建子视图.有没有人有任何想法?重新连接现有节点会更有效率.

谢谢!

mvb*_*fst -2

你想要做的事情对于 Backbone 来说似乎是 hack 式的。您最好通过设置事件委托和重新渲染视图来使用本机功能,而不是分离、克隆、更改和重新附加。这样做并不会提高任何性能。

如果您解释了为什么需要这样做以及为什么本机 Backbone 做事方式不适合您,那么提供帮助会容易得多。