私はmysqlデータベースからのコンテンツを表示するdivを持っています。内容が長すぎるので、ハンドルバーヘルパーを使用することに決めました。ここに私のhtmlコードは次のとおりです。ハンドルバーヘルパーが定義されていません。
<div class="row">
{{#if news}}
{{#each news}}
<div class="col-md-4 img-portfolio">
<a href="/news-details/{{id}}">
<img class="img-responsive img-hover small-img" src="/images/news/{{image}}" alt="">
</a>
<h3>
<a href="/news-details/{{id}}">{{title}}</a>
</h3>
<p> {{substr "10" text}} </p>
</div>
{{/each}}
{{else}}
<p>No News</p>
{{/if}}
次のようにハンドルバーヘルパーはindex.jsファイルに配置されています
Handlebars.registerHelper('substr', function(length, context, options) {
if (context.length > length) {
return context.substring(0, length) + "...";
} else {
return context;
}
});
私はnodejsサーバーを実行すると、私はハンドルではありません「受け取ります定義済みのエラーです。私は急行-ハンドルバーのパッケージをインストールしても
var Handlebar = require('express-handlebars');
としてindex.jsファイルにそれを宣言したが、それはまだ動作しませんでした。
これはどのように行うのが好きですか? – GoGo
@Karatayは、express-handlebarsのドキュメントヘルパー登録を反映するための答えを編集しました。使い方については、エクスプレスハンドルバーのドキュメントの[Usage section](https://github.com/ericf/express-handlebars#basic-usage)を参照してください。 –
はい私はそれを試みたが、それは逃しているヘルパー: "substr"を続けている。私はエクスプレスハンドルバーとエクスプレスの最後のバージョンを持っています。 – GoGo