2016-10-15 9 views
0

私は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ファイルにそれを宣言したが、それはまだ動作しませんでした。

答えて

0

まあ、これは「正しい」答えはありませんが、それは問題が解決されるようになりました。私はそれを動作させるためにCSSを使用しました。単に段落タグの「テスト」としてIDを追加し、次のようにstyle.cssファイルにCSSを割り当てます:

#test { 
-o-text-overflow: ellipsis; /* Opera */ 
text-overflow: ellipsis; /* IE, Safari (WebKit) */ 
overflow:hidden;    /* don't show excess chars */ 
white-space:nowrap;   /* force single line */ 
width: 350px;     /* fixed width */ 
} 
1

Handlebarの代わりにHandlebarsを変数名として使用する必要があります。

また、ヘルパーの公式express-handlebarsは、exphbs.createの下にヘルパーを定義することをお勧めします。

ので、サーバー上のヘルパーとのコードは次のようでなければなりません:

var exphbs = require("express-handlebars"); // you can use any variable name 

var hbs = exphbs.create({ 
    helpers: { 
    substr: function(length, context, options) { 
     if (context.length > length) { 
     return context.substring(0, length) + "..."; 
     } else { 
     return context; 
     } 
    } 
    } 
}); 
+0

これはどのように行うのが好きですか? – GoGo

+0

@Karatayは、express-handlebarsのドキュメントヘルパー登録を反映するための答えを編集しました。使い方については、エクスプレスハンドルバーのドキュメントの[Usage section](https://github.com/ericf/express-handlebars#basic-usage)を参照してください。 –

+0

はい私はそれを試みたが、それは逃しているヘルパー: "substr"を続けている。私はエクスプレスハンドルバーとエクスプレスの最後のバージョンを持っています。 – GoGo

関連する問題