Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/400.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
Javascript 布局和视图管理_Javascript_Backbone.js - Fatal编程技术网

Javascript 布局和视图管理

Javascript 布局和视图管理,javascript,backbone.js,Javascript,Backbone.js,我从主干网开始,我想实现一个简单的应用程序来管理用户和产品对象。页面布局始终相同:页眉(首页)、菜单(左列)和内容(右列),但页眉和菜单内容取决于当前模块(用户或产品) 我搜索管理页面布局的正确方法。事实上,我在我的主干路由器的每种方法中管理头部和菜单,但我认为这不是最好的解决方案 var appRouter = Backbone.Router.extend({ routes: { "users": "listUser", "users/new": "ne

我从主干网开始,我想实现一个简单的应用程序来管理用户和产品对象。页面布局始终相同:页眉(首页)、菜单(左列)和内容(右列),但页眉和菜单内容取决于当前模块(用户或产品)

我搜索管理页面布局的正确方法。事实上,我在我的主干路由器的每种方法中管理头部和菜单,但我认为这不是最好的解决方案

var appRouter = Backbone.Router.extend({
    routes: {
        "users": "listUser",
        "users/new": "newUser",
        "users/:id": "showUser",
        "products": "listProduct",
        "products/new": "newProduct",
        "products/:id": "showProduct"
    },

    listUser: function() {
        if (this.userHeaderView == null) {
             var header= new UserHeaderView();
             header.render();
             this.userHeaderView = header;
        }
        if (this.userMenuView == null) {
             var menu= new UserMenuView ();
             menu.render();
             this.userMenuView = menu;
        }
        this.contentView = new UserListView().render();
    }

    // ...

    newProduct: function() {
        if (this.productHeaderView == null) {
             var header= new ProductHeaderView();
             header.render();
             this.productHeaderView = header;
        }
        if (this.productMenuView == null) {
             var menu= new ProductMenuView();
             menu.render();
             this.productMenuView = menu;
        }
        this.contentView = new NewProductView().render();
    }

    // ...
});

路由器不应用于管理应用程序初始化。您应该创建一个应用程序对象,用于管理初始化过程、设置始终需要的标题和菜单等(请注意,主干不包括这样的对象。创建此对象由您决定)

路由器应该只知道它绝对需要知道的内容,以便使应用程序恢复到被请求的状态

我已经就此写了几篇文章,虽然我的文章确实引用了我的主干网。木偶网框架,但我所说的原则也适用于标准主干网的使用:


我意识到我建议你们阅读的信息比直接回答你们的问题可能需要的多得多。不过,这些文章的结合应该会告诉您一些不同的想法和观点,这些想法和观点将有助于形成主干网的使用,从而避免一些关于路由器、管理布局、关闭视图等的常见错误。

路由器不应用于管理应用程序初始化。您应该创建一个应用程序对象,用于管理初始化过程、设置始终需要的标题和菜单等(请注意,主干不包括这样的对象。创建此对象由您决定)

路由器应该只知道它绝对需要知道的内容,以便使应用程序恢复到被请求的状态

我已经就此写了几篇文章,虽然我的文章确实引用了我的主干网。木偶网框架,但我所说的原则也适用于标准主干网的使用:


我意识到我建议你们阅读的信息比直接回答你们的问题可能需要的多得多。不过,这些文章的结合应该会告诉您一些不同的想法和观点,这些想法和观点将有助于您更好地使用主干网,从而避免在路由器、管理布局、关闭视图等方面出现一些常见错误。

感谢您的回复,我读了所有的文章,你的区域经理似乎很有趣。但是,我不明白我如何才能在模块更改时更改标题?感谢您的回复,我已经阅读了所有文章,您的RegionManager似乎很有趣。但是,我不明白我如何才能在模块更改时更改标题?