【发布时间】:2015-08-06 23:26:33
【问题描述】:
基本上我要做的是找到管理我所有视图的最佳方法。所以我的所有视图都会在必要时关闭并创建。正因为如此,我在我的内部创建了一个单独的管理器Backbone.Routerinstance 处理我的所有观点如下。
router.js
AppRouter.prototype.initialize = function () {
.......
var eMgr = _.extend({}, Backbone.Events);
var vMgr = new ViewManager();
vMgr.add(new vTopMenu({eMgr: eMgr}));
vMgr.add(new vTooltip({eMgr: eMgr}));
app_router.on('route:MainMenu', function () {
vMgr.close_all_views(function(){
vMgr.add(new vmainMenu({eMgr: eMgr}));
vMgr.render_all_views();
});
});
app_router.on('route:showMap', function () {
vMgr.close_all_views(function(){
vMgr.add(new vMapMenu());
vMgr.render_all_views();
});
});
...
}
如您所见,TopMenu 和 Tooltip 视图只创建一次,因为我认为不需要更改它们的内容。而且我还想在加载视图时避免出现空格...
我不确定这是否是个好主意,因为一旦我从一条路线导航到另一条路线,所有其他视图都将关闭并重新启动。
所以问题是,像这样设置这些视图是一个好习惯吗?还是应该在触发任何路线时始终重新创建视图?
【问题讨论】: