単純なアプローチは、既存のテキストに基づいてRequireJSプラグインを作成することです!プラグイン。これによりテンプレートが読み込まれ、コンパイルされます。 RequireJsは、コンパイルされたテンプレートをキャッシュして再利用します。
プラグインコード:main.jsで
// hbtemplate.js plugin for requirejs/text.js
// it loads and compiles Handlebars templates
define(['handlebars'],
function (Handlebars) {
var loadResource = function (resourceName, parentRequire, callback, config) {
parentRequire([("text!" + resourceName)],
function (templateContent) {
var template = Handlebars.compile(templateContent);
callback(template);
}
);
};
return {
load: loadResource
};
});
設定:backbone.marionetteビューで
require.config({
paths: {
handlebars: 'libs/handlebars/handlebars',
hb: 'libs/require/hbtemplate',
}
});
使用:あなたは偉大なバックボーンを使用する場合は
define(['backbone', 'marionette',
'hb!templates/bronnen/bronnen.filter.html',
'hb!templates/bronnen/bronnen.layout.html'],
function (Backbone, Marionette, FilterTemplate, LayoutTemplate) {
...
.Marionetteフレームワーク は、デフォルトのレンダラーをオーバーライドして、彼は組み込まれています (ローディング/コンパイル/キャッシングのための)テンプレートローダー:
Marionette.Renderer = {
render: function (template, data) {
return template(data);
}
};
ありがとう!それはすごくうまくいくようです。私はそれがr.jsとどのように統合するのが大好きです –