2016-07-27 5 views
0

コンパイルされていないダスト部分をダストビューに含める方法を理解しようとしています。dust.js内のコンパイルされていない部分ファイル

main.dust:

<div class="container"> 
    {>"toolbar"/} 

</div> 

toolbar.dust:

<div class="row"> 
    toolbar 
    {somevariable} 
</div> 

これは、コンパイル済みの部分の名前toolbar.jsないコンパイルされていないtoolbar.dustテンプレートをロードしようと?

私はこの記事をここに見つけました:How do you include a raw, uncompiled partial in dust.js?これはファイルをロードさせますが、それらに含まれる{変数}はすべて置き換えられません。

私はそれらを変更するたびにビューをコンパイルする必要はありません。どのように変数を置き換えてコンパイルされていないテンプレートを含めることができますか?

答えて

1

ダストにonLoadハンドラを追加して、パーシャルをロードする方法を伝えることができます。デフォルトでは、Dustは使用しようとしているすべてのテンプレートをあらかじめ登録しておく必要があります。

詳細情報:Loading Templates(あなたが未コンパイルのテンプレートをロードするように聞こえる)

:テンプレートをコンパイルすると、それらをレンダリングするよりもはるかに遅いので、あなたは本当に、生産でこれを行うべきではありません。 Expressのようなものを使用している場合は、コンパイルするためのビルド・ステップまたはExpressプラグインを設定する時間を取ってください。 Dust GitHubリポジトリのexamplesディレクトリには例があります。 、callbackはノードエラーバックのシグネチャを使用していることを

dust.onLoad = function(templateName, callback) { 
    fs.readFile(templateName + '.dust', { encoding: 'utf8' }, function(err, data) { 
    callback(null, data); 
    }); 
}; 

お知らせ:

アンonLoadハンドラは、この(あなたのアイデアをserver--でほこりを実行していると仮定すると、クライアントのために同じである)のようになります。このコードを簡略化すると、次のようになります。があります。

+0

私は厳密にクライアントにテンプレートを作成しています。バックエンドはPHPで記述されています。私が達成しようとしているのは、開発中のビルドステップを防ぐために、 'dev'でコンパイルされていないビューを使用し、 'production'でGruntを使用してテンプレートをコンパイルすることです。 私はこの投稿を見つけました:http://stackoverflow.com/questions/29304979/compiling-and-rendering-complex-dust-js-templates-on-the-client dust.onLoadを追加するとそのように見えますすべてのビューをトリガしますか?私はそれを部分的なもののためだけに使うことができますか? – Jonathan

+0

考え方はクライアントで同じですが、readFileをAJAXの一部の読み込みで置き換えてください。 – Interrobang

+0

最後のコメントを忘れてしまいました。 – Jonathan

関連する問題