【发布时间】:2015-07-14 14:14:18
【问题描述】:
我想用 Marionette 中的一个(或可能是它自己的)区域缓存 ItemView html。
该过程以不同的视图以不同的形式上演。在访问每个阶段时,我们希望附加显示某个 ItemView,但我们还希望能够重新访问任何以前的视图,它是 html 来更改表单数据并继续更新后续视图。
这里我刚刚将视图添加到路由呼叫的区域。
buildView: function (page) {
try {
var view = new View[page]();
} catch (error) {
console.debug('This View Doesn\'t Exsist --> [' + page + ']', error);
}
Layout.body.show(view, { preventDestroy: true });
}
我可以为每个 ItemView 使用不同的区域来保留以前的视图..
buildView: function (page) {
var _region = Layout[page], _view;
if (_region.hasView()) {
_region.show(_region.currentView);
} else {
try {
_view = new View[page]();
} catch (error) {
console.debug('This View Doesn\'t Exsist --> [' + page + ']', error);
}
_region.show(_view, {preventDestroy: true});
}
}
有没有人知道这种类型的使用的好解决方案并显示以前的 ItemView,同时能够在必要时更新新视图?
我们是否应该在需要时恢复到隐藏和显示每个区域并让它存储我们渲染的 html?
如果有人不确定我在这里要解释什么,很乐意提供更多信息!
谢谢,很抱歉粗鲁且可能不是很有见地的 Q ^^。
【问题讨论】:
-
请提供一些相关代码,以帮助我们了解上下文和您之前的尝试。
-
我已经用一些来源更新了这个问题。很高兴提供更多信息,但我认为这表明了主要目的。
-
您这样做的原因是什么?它不会实现明显的性能差异,如果是用于分页,则有更好的方法
-
这是一种分页样式的模式,每个视图都非常复杂,前一个视图的变化决定了后续视图的内容。如果您能启发我更好的方法,将不胜感激!