2017-10-19 19 views
0

他のヘルパーの内部でヘルパーを呼び出すことができるかどうかを私に教えてください。私は日付形式ヘルパーの中でi18nヘルパーを呼び出す必要があります。私はそれが動作するように見えることはできません。それがこのプラグインでも可能かどうか疑問に思っていました。他NodeJs Handlebars他のヘルパーの内部でヘルパーを呼び出す

const express = require('express'); 
const i18next = require('i18next'); 

i18next.init(options); 

app.use(i18nextMiddleware.handle(i18next)); 
app.post(path.join(__dirname,'/locales/add/{{ns}}/{{lng}}'), i18nextMiddleware.missingKeyHandler(i18next)); 
app.get(path.join(__dirname,'/locales/resources.json'), i18nextMiddleware.getResourcesHandler(i18next)); 

// view engine setup 
app.set('views', path.join(__dirname, 'views')); 

app.engine('hbs', exphbs({ 
    extname: 'hbs', 
    defaultLayout: 'main_layout', 
    layoutDir: path.join(__dirname, 'views/layouts/'), 
    partialsDir: path.join(__dirname,'views/partials/'), 
    helpers: { 
     i18n: function(key, options){ 
      var result = this.t(key, options.hash); 
      return new Handlebars.SafeString(result); 
     }, 
     formatExpire: function (namespace, date, format, lang) { 
     // strText = "expired On"; 
     // strText = Handlebars.i18n.t('namespace:translationString'); // Cannot read property 't' of undefined 
     // strText = Handlebars.i18n('namespace:translationString'); // Handlebars.i18n is not a function 
      strText = Handlebars._default_helpers['i18n'].t('namespace:translationString'); // t is not a function 

     htmlDisplay = "<span class='bg-danger-800 text-highlight'>" + strText + "<span class='text-semibold'></span></span>"; 

     return htmlDisplay; 
     } 
     ... 
     .... 
    } 
    }) 
) 

app.set('view engine', 'hbs'); 

何かがヘルパーのすべての私は何の問題を持っていない、素晴らしい作品:

は、ここに私の設定です。私が "formatExpire"を呼び出すときにのみ、ヘルパー関数のコメントとしてエラーが表示されます。

ご協力いただければ幸いです。

おかげ

答えて

0

だけHandlebars.helpers.i18n('namespace:translationString')は問題ないはずです。 TypeError例外を: {blockHelperMissing:[機能]、 それぞれ:Handlebars.helpers.i18n機能 iは、コンソール・ログ(Handelbars.helpers)を行うときに私は取得しないで、[機能]、

+0

iが取得動作しません helperMissing:[機能]、 場合:[機能]、 ない限り:[機能]、 ログ:[機能]、 ルックアップ:[機能]、 有する:[機能]} それだけに内蔵さを表示していますハンドルバーのヘルパー、私のcutomヘルパーのリストはありません。 – boulepick

関連する問題