Backbone.js 如何确定是否应使用布局视图木偶?
我已经浏览了布局视图上的所有木偶文章,我不确定使用它与我现在如何设置应用程序相比是否有优势,让我向您展示一下 在为我的应用程序构建组件之后,我创建了一个应用程序级视图,用于处理所有这些视图的初始化和呈现Backbone.js 如何确定是否应使用布局视图木偶?,backbone.js,marionette,Backbone.js,Marionette,我已经浏览了布局视图上的所有木偶文章,我不确定使用它与我现在如何设置应用程序相比是否有优势,让我向您展示一下 在为我的应用程序构建组件之后,我创建了一个应用程序级视图,用于处理所有这些视图的初始化和呈现 var Backbone = require('backbone'), TeamsView = require('./teams'), DataView = require('./teamData'), LeaderView = require('./leade
var Backbone = require('backbone'),
TeamsView = require('./teams'),
DataView = require('./teamData'),
LeaderView = require('./leader');
module.exports = appView = Backbone.View.extend({
el: '#wrap',
template: require('../../templates/app.hbs'),
initialize: function() {
window.App.views.teamsView = new TeamsView({ collection: window.App.data.teams });
window.App.views.dataView = new DataView({ collection: window.App.data.teams });
window.App.views.leaderView = new LeaderView({ collection: window.App.data.teams });
},
render: function() {
var teamsView = window.App.views.teamsView;
var dataView = window.App.views.dataView;
var leaderView = window.App.views.leaderView;
this.$el.find('#basketball .app').prepend(teamsView.render().el);
this.$el.find('#basketball .app').prepend(dataView.render().el);
this.$el.prepend(leaderView.render().el);
}
});
然后在控制器内,我渲染上面的应用程序视图
这让我感觉很舒服,但内心深处的某个地方说这是错误的,我应该看看布局视图
因此,我的问题更具体地说是,当在主干应用程序中组合这些部分时,我应该查看布局视图还是创建单个应用程序级别的视图(如上所述)就足够了?在最简单的级别上,您所做的是很好的,尽管可能需要更多的手动操作。但是,随着事情变得越来越复杂,您可能需要布局视图 布局视图的值出现在您的应用程序中有一个区域,您希望该区域包含子区域,但仅在某些视图中。例如,您可能在应用程序的
#main region
中有一个索引/列表,其中只有一组团队,在这种情况下,您可以为每个团队使用集合视图
(或者合成视图
,如果您想添加一些样式)
但是,假设您单击编辑其中一个团队,现在希望#main region
显示编辑页面,该页面本身在#infoRegion
中包含一些关于团队的信息,然后在#formRegion
中显示编辑表单。这些是特定于编辑页面的区域,因此您可能希望使用布局视图来管理它们,而不是一直委派到应用程序级别
我希望这是有意义的,如果需要的话,我很乐意澄清。您还可以查看文档,了解何时使用每种视图类型的详细信息:没有“区域视图”之类的东西。。。你是说一个布局视图吗?是的,现在改变它。。。。。完成!谢谢你给我一个更个人化的解释和例子,这就是我想要的。我知道这个应用程序会变得更复杂,我正在努力提前准备。我只是没有时间去试验,发现布局视图是为其他东西设计的,这个名字本身就很有意义,因为我需要布局所有的作品,所以我需要尽可能多地阅读。谢谢