Fehler: Fehlende Helfer in Handlebars.js
Ich bin mit handlebars.js Vorlagen mit node und express. Ich mache eine nummerierte Liste mit den {{@index}}
template-tag, aber da index bei 0 beginnt, und ich will beginnen, scheint es, ich muss an einen eigenen Helfer. Ich habe gesehen, viele posts zu diesem und habe ich Folgendes gefunden code:
Handlebars.registerHelper("inc", function(value, options)
{
return parseInt(value) + 1;
});
{{#each score}}
<li class="list-group-item">
<div id="place"> {{inc @index}}   </div>
<div class="wordOrName">{{ player_name }}</div>
<div class="number">{{ score }}</div></li>
{{/each}}
Was ich kann nicht scheinen zu finden ist, wo die Helfer registrieren-Funktion gehen soll. Ich habe versucht, indem es nach innen in der Vorlage selbst und in verschiedenen anderen Orten, aber ich bleibe noch immer
Error: Missing helper: "inc"
at model.<anonymous>
Idealerweise würde ich gerne die Helfer in einer separaten Datei helpers.js aber ich habe nicht die geringste Idee, wie man LENKER zu erkennen.
EDIT:
LENKER ist inbegriffen in das Projekt mit dem folgenden code in der node-Datei index.js:
//view engine
app.set('views', __dirname + '/views/');
app.set('view engine', 'handlebars');
app.engine('handlebars', engines.handlebars);
Scheint es unmöglich, die Hilfsfunktion innerhalb der Vorlage selbst.
InformationsquelleAutor Cameron Sima | 2015-10-10
Du musst angemeldet sein, um einen Kommentar abzugeben.
Habe ich es herausgefunden...Die Helfer tatsächlich registriert werden müssen in der Knoten-app-Datei etwa so:
Ich wünschte, diese info war leichter zugänglich, aber es ist so.
InformationsquelleAutor Cameron Sima
Registrieren Sie einen Mathe-LENKER und führen alle mathematischen Operationen.
Dann können Sie direkt führen den Betrieb in Ihrem Blick.
Oder registrieren '+' (lvalue, rvalue) => parseFloat(lvalue) + parseFloat(rvalue), und ähnlich für die '-', '*' und '/', wenn nötig, und verwenden Sie Sie dann als {{'+' @index 1}}, wenn Sie Sie nicht brauchen oder wollen verschiedene operator-Implementierungen für unterschiedliche Datentypen
InformationsquelleAutor Priyanshu Chauhan
Könnten Sie fügen Sie die Helfer innerhalb einer separaten Datei, wie Sie sagte, so etwas wie "helper.js" und fügen ihn in Ihre HTML-Seite nachdem Sie hatten importiert LENKER JS-Datei.
Können Sie auch überprüfen, Swag (https://github.com/elving/swag) Es enthält viele hilfreiche LENKER Helfer.
InformationsquelleAutor raghav
Brauchen Sie nicht hinzufügen
require('handlebars')
nur, um Helfer zu arbeiten. Sie können zu kleben express-LENKER. Definieren Sie Helfer in einer config-Objekt, wie sovar myConfig = { helpers: {x: function() {return "x";}} }
und übergeben es an die express-LENKER-Objekt etwa so:require('express-handlebars').create({myConfig})
Hier ein voll funktionsfähiges Beispiel mit einigen Helfern und einigen anzeigen Verzeichnisse konfiguriert.
Mein Verständnis ist, dass das zurückgegebene Objekt aus
require('express-handlebars');
ist kein "richtiger" LENKER-Objekt. Sie können also nicht darauf verlassen, dass einige Funktionen, und anstatt Sie zu Durchlaufen haben, Sachen wie Helfer über ein config-Objekt, um die.create()
FunktionInformationsquelleAutor Drkawashima
Ein Freund von mir schlug vor, diese als gut, und es hat funktioniert!
InformationsquelleAutor Jay Aigner