sou*_*ust 3 backbone.js marionette
我们已经使用Backbone几个月了,但我们认为在共享具有可见视图的模型时必须有更好的方法来处理隐藏的视图.例如,我们有一个"View Segment"视图和一个"Edit Segment"视图,它们都代表一个"Segment"模型.其中一个总是隐藏在任何给定的时刻,但是,仍然听到与另一个相同的事件(包括ajax调用).我们为什么只是隐藏视图与替换的原因是我们希望最小化更改视图之间的加载时间,因为视图显示了大量数据和dom元素.我们认为隐藏视图在被显示之前不必呈现.
是否有适当的(最佳实践)方法来处理这种情况?你会如何处理这个问题?是否有一种简单的方法可以暂时禁用整个视图的事件监听?
我们使用与显示和编辑视图完全相同的场景.我们已将所有模型绑定逻辑收集到bindEvents
方法中,并使用unbindEvents
方法对其进行补充.
在hide
视图的方法中,我们调用unbindEvents
并在show
方法中调用bindEvents
.就那么简单.我们还调用bindEvents
的initialize
方法和unbindEvents
在remove
法避免了僵尸的看法.
我们不关心javascript事件,因为它们通常不会被隐藏的视图触发(大多数是点击或更改驱动)
顺便说一句,为了避免渲染一堆永远不会显示的html,我们将视图的第一次渲染推迟到第一次显示,所以在show
我们测试的方法中this.isRendered
(默认为布尔值,false),如果未设置,我们在显示之前渲染视图并将其设置为true.
归档时间: |
|
查看次数: |
3418 次 |
最近记录: |