我有一个Collection
为Models
. 每个模型都有一个DisplayView
始终可见。还有一个只有在单击EditView
关联时才可见。DisplayView
DisplayView
和EditView
出现在不同的父视图中。现在我正在使用“事件聚合器”模式来告诉我的应用程序在单击EditView
a 时呈现DisplayView
。此处描述的模式:http: //lostechies.com/derickbailey/2011/07/19/references-routing-and-the-event-aggregator-coordinating-views-in-backbone-js/
当单击其中一个时,DisplayView
它会触发一个事件,该事件的父级EditViews
侦听。当它接收到这个事件时,它会EditView
根据触发事件的模型呈现适当的 。
这适用于我的大多数应用程序,但当我想根据应用程序EditView
中相关项的绝对位置更改位置时尤其麻烦DisplayView
。它不是DisplayView
直接控制 的位置EditView
,而是触发“请重新定位到这些坐标”事件。这种直接的通信感觉不像是应该向整个应用程序广播的东西。我开始怀疑对于我的情况,我是否应该将适当的引用EditView
作为每个属性的属性,DisplayView
而不是将它们解耦。
正如我所说,问题在于它们是在不同的父视图中呈现的。DisplayViews
get 中渲染,HeaderView
而getEditViews
中渲染ContentView
。
其他人如何处理这样的情况?在EditView
某些方面属于DisplayView
,但这与我的应用程序 DOM 的结构方式不匹配。假设我确实在每个EditView
和之间创建了直接链接DisplayView
,我将如何处理 的显示/隐藏EditView
?是否DisplayView
还需要对ContentView
容器的引用,它将使用适当EditView
的参数显式呈现?