2017-10-19 19 views
0

다른 도우미 내부에서 도우미를 호출 할 수 있는지 마법사에게 알릴 수 있습니다. 날짜 형식 도우미 안에서 i18n 도우미를 호출해야합니다. 나는 그것이 작동하도록 할 수 없습니다. 그것이이 플러그인으로 가능한지 궁금해하고있었습니다. 다른NodeJs 핸들 바 다른 도우미 내부에서 도우미 호출하기

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') 잘해야한다. [기능] : 나 얻을 난 콘솔 로그 할 때 Handlebars.helpers.i18n 함수 아니다 (Handelbars.helpers)를 : {blockHelperMissing [기능] 각 형식 오류가 :

+0

내가 얻을 작동하지 helperMissing : [기능] 경우 : [기능] 않는 : 그것은 단지 내장 표시하고 [기능]} 것 : [기능] : [기능] 로그 : [기능] 룩업 핸들바 도우미, 내 cutom 도우미 중 누구도 나열되어 있지 않습니다. – boulepick