定义 Backbone.Layout 作为 need js 模块

Defining Backbone.Layout as require js module?

本文关键字:js 模块 need 作为 Backbone Layout 定义      更新时间:2023-09-26

I can't definie tbranyen/backbone.layoutmanager layouts as requirejs modules.我对此很陌生,不是javascript的大师。 Backbone.Layout在此源代码行中定义。哎呀...

第一次尝试

define([
    'backbone',
    'lodash',
    'backbone.layoutmanager'
], function (Backbone, _) {
    return Backbone.Layout({
        template: 'body'
    });
});

在另一个模块(主模块)中使用该模块:

var layout = new ApplicationLayout();
$('body').empty().append(layout.el);
layout.render();

给我(?!?):

类型错误: this._configure 不是函数

this._configure(选项 ||{});

第二次尝试(注new):

define([
    'backbone',
    'lodash',
    'backbone.layoutmanager'
], function (Backbone, _) {
    return new Backbone.Layout({
        template: 'body'
    });
});

在另一个模块(始终是主模块)中使用:

$('body').empty().append(ApplicationLayout.el);
ApplicationLayout.render();

不起作用,这意味着 html 没有注入<body> .似乎获得这项工作的唯一方法是在同一个地方创建和渲染布局,主模块:

var layout = Backbone.layout({ template: 'body' });
$('body').empty().append(layout.el);
layout.render();

这可能吗?

您需要为布局管理器传递一个参数才能使用它,例如

define([
    'backbone',
    'lodash',
    'backbone.layoutmanager'
], function (Backbone, _, Layout) {
return Layout({
    template: 'body'
});