我正在处理一些计划不周,写得不好的代码,而且我没有时间重写。我需要能够访问在同一页面上呈现的视图,但是与我需要访问它的视图分开。
鉴于包含外部视图的元素,我该如何访问它?是否有更好的方法使视图可用(不重写它们连接在一起的方式)?
答案 0 :(得分:2)
我想你正在使用牵线木偶。你的问题特别是一个设计问题,而不是一个简单的代码行来做另一个讨厌的事情。理想情况下,像$("#element")
这样的东西不是一个好习惯,因为它遍历整个DOM以找出元素。
相反,我会建议您使用以下方法,这些方法在大多数地方都很有效,因为您的观点都是 view1 和 view2 :
从布局的子项目视图:
this.triggerMethod('show:message', msg);
并且布局有一些代码:
childEvents: {
'show:message': function (childView, msg) {
view2.dosomething();
}
}
通过这种方式,您可以保持视图功能彼此分离,并且您的代码仍然保持干净。
我想你也可以看一下Marionette文档http://marionettejs.com/docs/marionette.layoutview.html