0

这个项目使用BackboneJSBackboneLayout

有一个相当复杂的视图层次结构——在某些情况下有四到五个层次。

我有一种情况,我希望一个视图触发另一个视图的更改,但监听器不是一种选择。(导致听众过多,扼杀记忆)。

Top -> X -> Y
Top -> B -> C -> D -> E

Top是顶层视图,它有一个X视图,它有多个Y视图。 Topview也包含一个Bview,其中包含多个Bview,每个view包含多个view,每个view包含多个view,C每个Dview包含多个Eview。

视图的更改Y需要影响E当前呈现的所有视图。如果不是前面提到的问题,这对听众来说是完美的。因此,我正在寻找一种替代方法来完成同样的事情。

我正在考虑让Top视图找到它的所有类型的孩子E,或者类似的东西。也欢迎其他解决方案。

谢谢。

4

1 回答 1

0

是的,我会Top维护一个所有E实例的列表——这只是应用程序代码中的一些东西,可能在E.initialize(),或者通过你自己的方法在你的视图层次结构中添加/删除节点,如果你有它们的话——它是自己的事件监听change所有 Y 上的事件并重新渲染Es 的处理程序。如果监听更改的成本高得令人望而却步,请从您的应用程序代码中Y触发自定义Y-change(或其他)事件,然后让 Top 监听该事件。TopY

让 E 实例的列表不同步很容易,但是,这就是存在侦听器的原因。仔细阅读并确保 Top 已经挂钩到B->C->D->E树下的每个点,并且知道在发生更改时要对其(本质E上是非规范化的)列表进行哪些更改。

于 2013-08-12T13:03:24.527 回答