如何理解所需的布局已经创建
How to understand that required layout has already been created?
在我的应用程序中,我有一些具有相似设计的页面和一个设计完全不同的主页。因此,我的问题是如何理解所需的布局(对于具有类似设计的页面)已经创建并且不重新渲染它。顺便说一句,在进一步的开发中,我可能会添加一些具有不同设计的新页面。我想过一些解决方案,但它们对我来说似乎都是反模式。所以,我需要以正确的方式组织我的木偶控制器。现在它看起来像这样:
define(['backbone', 'marionette', 'app/app', 'session'], function (Backbone, Marionette, app, session) {
'use strict';
var main = app.mainRegion;
function mainContent (view, model, options) {
require([view, model], function (View, Model) {
if (...) { //if main.currentView is already 'layout/main' then...
var model = new Model(options);
main.currentView.content.show(new View({ model: model }));
} else {
require(['layout/main'], function(Layout) {
main.show(new Layout());
var model = new Model(options);
main.currentView.content.show(new View({ model: model }));
})
}
});
}
return Marionette.Controller.extend({
home: function () {
if (session.getToken() === '') {
require(['layout/home', 'login/view', 'register/view', 'login/model',
'register/model'], function(Layout, LoginView, RegisterView, LoginModel, RegisterModel) {
main.show(new Layout());
main.currentView.login.show(new LoginView({ model: new LoginModel() }));
main.currentView.register.show(new RegisterView({ model: new RegisterModel() }));
});
} else {
Backbone.history.navigate('/feed', { trigger: true });
}
},
feed: function () {
mainContent('feed/view', 'feed/model', {});
},
profile: function(username) {
mainContent('profile/view', 'profile/model', { username: username });
}
});
});
如果您使用的是区域,则无需担心。仅当视图与区域中的当前视图不同时,才会重新呈现视图。另外,您可以手动检查:
if (main.currentView instanceof Layout) {
...
}
相关文章:
- 创建一个类似链接的按钮,并通过Javascript函数打开一个新的弹出窗口
- 访问布局信息是否也会导致浏览器重排
- 为effect Composer创建GodRays效果过程
- 如何理解所需的布局已经创建
- 有没有办法从木偶.js中的显示控制器访问在列表控制器中创建的布局区域
- 如何在 Twitter 引导流畅布局中创建多个可滚动部分
- 如何创建响应式z布局
- 为 sapui5 中的自定义控件的多个聚合创建布局
- 有角度的材料布局-如何创建可滚动的部分
- angular ui路由器:创建可扩展的、不改变url的布局状态
- 如何使用CSS和JavaScript创建可定制的动态网格布局
- 如何用Twitter Bootstrap创建一个类似Gmail的布局
- 使用javascript和jquery为textarea创建自定义键盘布局
- 如何在流体布局中创建可调整大小的滚动文本框
- 创建从JSON到HTML的布局
- 如何在TinyMCE 4弹出窗口中创建此特定布局
- 我们需要使用javascript来创建响应式布局吗
- 如何创建没有 html 表的两列布局
- Javascript是创建流畅布局的有效方法吗?
- 如何使用React创建d3力布局图