2017-10-19 1 views
0

kann ein Zauberer mich wissen lassen, ob es möglich ist, einen Helfer in einem anderen Helfer anzurufen. Ich muss einen i18n Helper in einem Datumsformat-Helfer aufrufen. Ich kann es nicht zur Arbeit bringen. Ich frage mich, ob das mit diesem Plugin überhaupt möglich ist.NodeJs-Lenker i18Nächste Helfer in einem anderen Helfer rufen

hier ist mein Setup:

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'); 

alles andere funktioniert gut, all die Helfer, ich habe keine Probleme mit. nur wenn ich "formateExpire" anrufe, bekomme ich die Fehler als Kommentare in der Hilfsfunktion aufgelistet.

Jede Hilfe würde sehr geschätzt werden.

dank

Antwort

0

Gerade Handlebars.helpers.i18n('namespace:translationString') sollte in Ordnung sein.

+0

funktioniert nicht ich erhalte: Typeerror: Handlebars.helpers.i18n ist keine Funktion wenn ich eine Konsolenprotokoll (Handelbars.helpers) Bekomme ich: {blockHelperMissing: [Funktion], jeder: [Funktion], helperMissing: [Funktion], wenn: [Funktion], es sei denn: [Funktion], log: [Funktion], Lookup: [Funktion], mit: [Funktion]} es wird nur in dem eingebauten Anzeigen Lenkerhelfer, keiner meiner Cutom Helfer ist gelistet. – boulepick

Verwandte Themen