Erreur: Manque d'aide dans Handlebars.js
Je suis en utilisant handlebars.js les modèles avec nœud et de l'exprimer. Je fais une liste numérotée à l'aide de la {{@index}}
balise de modèle, mais depuis, l'index commence à 0 et je veux commencer à partir de l'un, il semble que j'ai besoin d'utiliser un helper. J'ai vu beaucoup de posts à ce sujet et j'ai trouvé le code suivant:
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}}
Ce que je n'arrive pas à trouver où est l'assistant fonction registre est censé aller. J'ai essayé de le mettre à l'intérieur dans le modèle lui-même et dans de nombreux autres endroits mais je garde toujours arriver
Error: Missing helper: "inc"
at model.<anonymous>
Idéalement, j'aimerais avoir de l'aide dans un fichier séparé helpers.js mais je n'ai pas la moindre idée de la façon d'obtenir le guidon à la reconnaître.
EDIT:
Guidon est inclus dans le projet avec le code suivant à l'intérieur du noeud de fichier index.js:
//view engine
app.set('views', __dirname + '/views/');
app.set('view engine', 'handlebars');
app.engine('handlebars', engines.handlebars);
Il semble impossible d'inclure la fonction d'assistance au sein du modèle lui-même.
OriginalL'auteur Cameron Sima | 2015-10-10
Vous devez vous connecter pour publier un commentaire.
J'ai tout compris...Les aides en effet besoin d'être inscrit dans le nœud application fichier comme ceci:
Je souhaite que cette info était plus facilement accessible, mais il est.
OriginalL'auteur Cameron Sima
Registre de maths guidon et effectuer toutes les opérations mathématiques.
Ensuite, vous pouvez directement effectuer l'opération de votre point de vue.
Ou enregistrer '+' (lvalue, rvalue) => parseFloat(lvalue) + parseFloat(rvalue), et pour les '-', '*' et'/', si nécessaire, et ensuite les utiliser comme {{'+' @index 1}} si vous n'avez pas besoin ou envie de différent de l'opérateur implémentations pour différents types de données
OriginalL'auteur Priyanshu Chauhan
Vous pouvez simplement coller les aides à l'intérieur d'un fichier séparé, comme vous l'avez dit quelque chose comme "helper.js" et l'inclure dans votre page HTML après vous avoir importé Guidon fichier JS.
Vous pouvez aussi consulter Swag (https://github.com/elving/swag) qu'Il contient beaucoup de utile guidon aides.
OriginalL'auteur raghav
Vous n'avez pas besoin d'ajouter
require('handlebars')
juste pour obtenir les aides de travail. Vous pouvez coller à exprimer-guidon. Définir les aides dans un objet de config commevar myConfig = { helpers: {x: function() {return "x";}} }
et de passer à l'express-guidon-objet:require('express-handlebars').create({myConfig})
Voici un exemple avec certaines aides et certains répertoires configurés.
Ma compréhension est que l'objet renvoyé de
require('express-handlebars');
n'est pas un "vrai" guidon d'objet. Si vous ne pouvez pas compter sur certaines fonctions, et au lieu de cela, vous devez passer des trucs comme aides par l'intermédiaire d'un objet de configuration de la.create()
fonctionOriginalL'auteur Drkawashima
Un de mes amis a suggéré ainsi, et cela a fonctionné!
OriginalL'auteur Jay Aigner