2012-08-15 67 views
1

我不能definie tbranyen/backbone.layoutmanager佈局爲requirejs模塊。我對此很新,而不是JavaScript中的大師。 Backbone.Layout定義at this line of source code。 Ayway ...定義Backbone.Layout如需要JS模塊?

首先嚐試

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 is not a function

this._configure(options || {});

小號的Econd嘗試(注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

你需要傳遞一個參數的佈局管理器,以便使用它,例如

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

任何消息,工作的呢? – schacki 2012-08-20 22:56:06