我正在使用Require.js和Backbone.js制作一个页面应用程序。这是一个相当大的网页应用程序,有很多不同的“页面”,也就是视图。下面是我的路由器给你一个想法。有几个主页面有子页面。
例如,有一个设置部分,它有多个不同的子页面,例如用户设置、语言设置、电子邮件设置等。
为了简单起见,我将如何构造多条路线及其视图?
现在,我给每个子页面它自己的视图,但这意味着我必须将20-30个视图导入路由器,以便当该页面被路由时,所有可能的视图都可用。
我想到的另一种方法是对每个部分都有一个视图,在这个视图中,我应该加载不同的部分。那样的话,我只需要将5-6部分的视图加载到路由器中.但是那样的话,这个观点就必须理解路由。
有什么正确的方法做这件事?
发布于 2014-04-25 23:44:30
我创建了负责视图呈现和模型获取的“控制器”对象。
我更喜欢在任何时候保持路由器的干净,这意味着我不会让它与回调功能相混淆。这样做会使路由器随着时间的推移而变得一团糟,而其部分目的则是快速了解可用的路由。
在主干中,我发现创建自己的约定非常有用,就像框架所做的那样。
例如,对于我创建的每个视图,我将创建一个控制器对象。
每个控制器对象都有一个名为“makeView()”的方法,它负责视图的呈现以及内存管理。
在我自己的理论中,我创造了一种“级联控制器”的方法,即一个控制器也可以控制其他控制器,控制器可以使用‘助手’对象来完成某些任务。例如,当您说您可能需要管理20个视图和子视图时;我们可以想象其中一些视图是相互关联的;将有一个中央控制器负责相关视图之间的公共任务,而特定控制器负责处理特定的单独视图功能。
我的路由器中的一条路由如下所示:
auth: function(){
//--- Check the authStatus and render status independent views
var auth_ctr = new Auth_ctr();
auth_ctr.makeViews();
}在给出的示例中,您可以想象您将创建和呈现多个视图。所以我真正要做的是从控制器内部实例化新的控制器,每个控制器分别创建和管理视图,提供支持视图的功能,获取收集/模型数据。
重要的是创建一种独立的“视图管理器”,防止每次呈现新视图时发生内存泄漏。
我就是这样做的,但当然,我相信有些人会采取不同的做法。
这是我提出的一个理论,它给了我一个清晰的结构,到目前为止,它一直对我很有效。
https://stackoverflow.com/questions/23300549
复制相似问题