将Backbone.Layout定义为需要js模块?

时间:2012-08-15 20:19:07

标签: javascript backbone.js requirejs backbone-views

我无法将tbranyen/backbone.layoutmanager布局定义为requirejs模块。我对这个很新,而不是javascript中的大师。 Backbone.Layout定义为at this line of source code。 Ayway ...

首先尝试

define([
    'backbone',
    'lodash',
    'backbone.layoutmanager'
], function (Backbone, _) {

    return Backbone.Layout({
        template: 'body'
    });

});

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

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

layout.render();

给我(?!?):

  

TypeError:this._configure不是函数

     

this._configure(options || {});

第二次尝试(注意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();

这甚至可能吗?

1 个答案:

答案 0 :(得分:1)

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

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