ホームページ  >  記事  >  php教程  >  KoaプラットフォームNode.jsをベースに開発されたKoaHub.jsのテンプレートエンジンコード

KoaプラットフォームNode.jsをベースに開発されたKoaHub.jsのテンプレートエンジンコード

WBOY
WBOYオリジナル
2016-09-30 09:22:561183ブラウズ

KoaプラットフォームNode.jsをベースに開発されたKoaHub.jsのテンプレートエンジンコード
コアハブハンドルバー

コアハブハンドルバー

コアハブハンドルバーテンプレート

インストール

$ npm コアハブハンドルバーをインストールします
コアと一緒に使用してください

var koa = require('koa');
var hbs = require('koahub-handlebars');

var app = koa();

// koahub-handlebars はミドルウェアです。ビューをレンダリングする前に「使用」してください
app.use(hbs.middleware({
viewPath: __dirname + '/views'
}));

// レンダリングは koa コンテキストにアタッチされます。ミドルウェアで「this.render」を呼び出します
// レンダリングされた HTML を koa 応答本文に添付します。
app.use(function *() {
yield this.render('index', {title: 'koahub-handlebars'});
})

app.listen(3000);

ヘルパーを登録する

ヘルパーは #registerHelper メソッドを使用して登録されます。これは、デフォルトのインスタンスを使用した例です (公式ハンドルバーのドキュメントから盗まれたヘルパー:
)
hbs = require('koahub-handlebars');

hbs.registerHelper('リンク', function(text, url) {
text = hbs.Utils.escapeExpression(text);
url = hbs.Utils.escapeExpression(url);

var result = '' + テキスト + '';

新しい hbs.SafeString(result) を返します;
});
これにより、{{link "Google" "http://google.com"}} を使用してすべてのビューでヘルパーにアクセスできるようになります

registerHelper、Utils、および SafeString メソッドはすべて、内部 Handlebars インスタンスにプロキシします。 Handlebars の代替インスタンスをミドルウェア コンフィギュレーターに渡す場合は、上記の関数の koahub-handlebars プロキシ経由でヘルパーを登録する前に必ずそうするか、Handlebars インスタンス経由で直接ヘルパーを登録してください。

ヘルパーで現在の Koa コンテキストにアクセスすることもできます。現在の URL を出力するヘルパーが必要な場合は、次のようなヘルパーを作成し、任意のテンプレートで {{requestURL}} として呼び出すことができます。

hbs.registerHelper('requestURL', function() {
var url = hbs.templateOptions.data.koa.request.url;
URL を返します;
});
パーシャルの登録

パーシャルを登録する簡単な方法は、パーシャルをすべてディレクトリに保存し、ミドルウェアの生成時に PartialsPath オプションを渡すことです。ビューが ./views にあり、パーシャルが ./views/partials にあるとします。
によるミドルウェアの設定
app.use(hbs.middleware({
viewPath: __dirname + '/views',
部分パス: __dirname + '/views/partials'
}));
自動的に登録されます。あるいは、キャッシュされたハンドルバーの #registerPartial メソッドにプロキシする hbs.registerPartial を呼び出して、一度に 1 つずつパーシャルを登録することもできます。

レイアウト

レイアウト名を指定してdefaultLayoutを渡すと、すべてのテンプレートがレイアウトの {{{body}}} 式に挿入されます。これは次のようになります。



<頭>
{{title}}


{{{体}}}


これに加えて、またはその代わりに、テンプレートをレンダリングするレイアウトを指定することもできます。 {{!< を指定するだけです。テンプレート内のどこかにlayoutName }}を追加します。 koahub-handlebars は、定義されている場合はlayoutsPathから、そうでない場合はviewPathからレイアウトをロードします。

現時点では、単一のコンテンツ ブロック ({{{body}}}) のみがサポートされています。

オプション

koahub-ハンドルバーの計画は、koa-hbs と同じ機能を (最終的には) 提供することです。これらのオプションは現在サポートされています。

viewPath: [必須] テンプレートのロード元のフルパス (配列|文字列)
ハンドルバー: ハンドルバーの独自のインスタンスを渡します
templateOptions: template() に渡すハンドルバー オプションのハッシュ
extname: デフォルトのテンプレート拡張子を変更します (デフォルト: '.html')
PartialsPath: 部分ディレクトリへのフルパス (配列|文字列)
defaultLayout: デフォルトのレイアウトの名前
layoutsPath: レイアウトディレクトリへのフルパス (文字列)
disableCache: テンプレートのキャッシュを無効にします (デフォルト: '.true')
地元の人

アプリケーションのローカル変数 ([this.state](https://github.com/koajs/koa/blob/master/docs/api/context.md#ctxstate)) は、アプリケーション内でレンダリングされるすべてのテンプレートに提供されます。

app.use(function *(next) {
this.state.title = '私のアプリ';
this.state.email = 'me@myapp.com';
次に譲ります;
});
状態オブジェクトは JavaScript オブジェクトです。追加されたプロパティは、ビュー内のローカル変数として公開されます。

{{title}}

連絡先: {{email}}


ありがとう

コアHBS

違います

構成ファイルの増分変更
一部の機能とデフォルト設定を変更します
...
公式サイト:http://js.koahub.com
KoaプラットフォームNode.jsをベースに開発されたKoaHub.jsのテンプレートエンジンコード

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。