Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Backbone.js 如何确定是否应使用布局视图木偶?_Backbone.js_Marionette - Fatal编程技术网

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
中显示编辑表单。这些是特定于编辑页面的区域,因此您可能希望使用布局视图来管理它们,而不是一直委派到应用程序级别


我希望这是有意义的,如果需要的话,我很乐意澄清。您还可以查看文档,了解何时使用每种视图类型的详细信息:

没有“区域视图”之类的东西。。。你是说一个布局视图吗?是的,现在改变它。。。。。完成!谢谢你给我一个更个人化的解释和例子,这就是我想要的。我知道这个应用程序会变得更复杂,我正在努力提前准备。我只是没有时间去试验,发现布局视图是为其他东西设计的,这个名字本身就很有意义,因为我需要布局所有的作品,所以我需要尽可能多地阅读。谢谢