私はSails0.9.7
を実行し、 Consolidate.jsでサポートされているため、Sails でサポートされているハンドルバーをインストールしました。
ファイルからページを提供でき.handlebars
ます。問題なく動作します。Sails ワークフローのどこに、Sails の方法で、パーシャルやヘルパーなどを登録する必要があるのか わかりません...単なる実用的なソリューションよりもベストプラクティスを探していますが、どんな助けも感謝します。
私はSails0.9.7
を実行し、 Consolidate.jsでサポートされているため、Sails でサポートされているハンドルバーをインストールしました。
ファイルからページを提供でき.handlebars
ます。問題なく動作します。Sails ワークフローのどこに、Sails の方法で、パーシャルやヘルパーなどを登録する必要があるのか わかりません...単なる実用的なソリューションよりもベストプラクティスを探していますが、どんな助けも感謝します。
私は v0.10 ベータ版を実行していますが、これが以下の動作に影響することはありません。
config/views.js
module.exports.views = {
engine : 'handlebars',
layout : false
};
config/routes.js
'/': {
controller: 'site',
action: 'index'
},
SiteController.js
module.exports = {
// Render Index View
index: function(req, res) {
res.view({
partials: {
head: 'partials/head',
tail: '../partials/tail',
},
});
}
};
ビュー/サイト/index.handlebars
{{> head}}
<h3>SITE INDEX</h3>
ビュー/サイト/部分/head.handlebars
<h1>HEAD</h1>
{{> tail}}
ビュー/パーシャル/テール.ハンドルバー
<h2>HEAD TAIL</h2>
<h1>HEAD</h1>
<h2>HEAD TAIL</h2>
<h3>SITE INDEX</h3>
上記の回答を使用していますが、ハックなしでセイル 0.9.8 でパーシャルを動作させたようです。
これが私が持っているものです。
Config/views.js => エンジン: 「ハンドルバー」
views/home/index.handlebars => パーシャルを使用したメイン ファイル。
views/home/partials/partial.handlebars => 部分的に使用されています。
次に、このようなものを使用する限り、完全に機能します。res.view({ パーシャル: { パーシャル: 'パーシャル/パーシャル', フッター: 'パーシャル/フッター' } })
パスは、デフォルトで呼び出されるテンプレート ファイルからの相対パスです。したがって、コントローラーごとに異なるパーシャルが必要な場合は partials/ を使用し、すべてのテンプレートにグローバルなパーシャルが必要な場合は ../partials/ を使用します
とにかくコントローラーですべての部分を手動で指定する必要があるため、明らかにこれは完全にあなた次第です。
時間がなくなってきましたが、答えに近づいていると思います。詳細がわかり次第、この返信を更新しますが、詳しく知りたい場合は、含まれている consolidate.js ファイルの 501 行目を確認してください。こちらの github で表示: https://github.com/balderdashy/sails/blob/master/lib/configuration/consolidate.js#L501
ハンドルバーには、options.partials からパーシャルを登録する for ループがあるようです。
これは完全に満足のいく解決策ではありませんが、パーシャルをそのオプション オブジェクトにプッシュすると、そこからプルされる可能性があります。
次の大きな疑問は、オプション オブジェクトとは何か、それはどこで設定されるのかということです。
Sails js でハンドルバー テンプレートを構成するには、以下の手順に従います。
1) アプリケーションの node_modules フォルダーにハンドルバーをインストールします。
npm インストール ハンドルバー
2) config/views.js を変更します
engine: 'handlebars',
layout: 'layouts/layout', // layouts is subfolder of view folder in sails app and layout is a handlebars inside layouts folder.
partials: 'partials'