创建和定义backbone.js的基本视图

时间:2013-04-11 14:40:55

标签: javascript backbone.js underscore.js extend

我正在尝试扩展主干视图以添加布局“骨架”的基本实现。这将用于使用不同组件拼凑页面。下面列出的问题是所有嵌套对象布局部件的范围更改。我可以为所有这些指向同一范围的闭包创建闭包,还是仅限于单个对象层?也许我在想错了?

    define(['backbone', 'underscore'
], function (backbone, _) {
    var base = backbone.View.extend({});

    _.extend(base.prototype, {
        sections: {
            head: {},
            body: {
                nav: {},
                main: {
                    header: {
                        title: "",
                        description: "",
                        inner_html: function () {
                            return this.render().el
                        },
                        menu_items: [],
                        changed: false,
                        scripts: function () { }
                    },
                    content: {
                        title: "",
                        description: "",
                        inner_html: function () {
                            return this.render().el
                        },
                        scripts: function () { }
                    },
                    buttons: {
                        items: [], // { id: "save", value: "Save" }, { id: "edit", value: "Edit" }
                        changed: false,
                        scripts: function () { }
                    }
                },
                footer: {}
            }
        }
    });

    return base;

});

1 个答案:

答案 0 :(得分:2)

这看起来很像Marionette的布局视图和区域。您可能不需要自己编写。我经常使用Marionette的布局,区域和专用视图,而不使用App和模块部分。