需要调用.delegateEvents()
父“集合”视图中的所有子视图,以便在从页面中删除父视图然后将其重新打开后重新委托事件。
我可以看到两种方法,就正确的做法而言,这两种方法对我来说都不太正确:
- 每当
addOne(
在父视图中调用 ) 时,将刚刚创建的子视图保存到列表中。当视图被添加回页面时需要稍后重新委派事件。使用数组向后滚动该列表并调用.delegateEvents()
每个子视图项。这种方法的问题是创建一个单独的数组来保存视图中的所有内容,当视图已经有一个 Backbone 认可的方式来影响它的子视图时this.collection.each()
- 使用视图内的内置
View.collection.each()
滚动浏览每个子模型。在每个模型上触发一个事件,导致其相应的视图调用.delegateEvents()
自身。这种方法的问题在于,纯粹的面向视图的操作正在通过模型进行路由。
这些方法中的任何一种都好还是有更好的方法我应该这样做?
非常感谢!